#1 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-10 12:02:10

dimich пише:

В першу чергу впевніться, що всі флаги препроцесора, компілятора і лінкера коректні. Як ви збираєте скетч, в IDE? Увімкніть "Show verbose output during compile" (чи як воно там в локалізованому варіанті) і покажіть вивод процесу збірки.

Так, я використовую Arduino IDE. Витягнув лог компіляції і схоже, що я все ж використовую MicroCore. Можливо вам цей лог щось скаже, бо я тут нічого не розумію:

D:ProgrammingArduino 1.8.16arduino-builder -dump-prefs -logger=machine -hardware D:ProgrammingArduino 1.8.16hardware -hardware D:ProgrammingArduino 1.8.16datapackages -tools D:ProgrammingArduino 1.8.16tools-builder -tools D:ProgrammingArduino 1.8.16hardwaretoolsavr -tools D:ProgrammingArduino 1.8.16datapackages -built-in-libraries D:ProgrammingArduino 1.8.16libraries -libraries D:ProgrammingArduino codeslibraries -fqbn=MicroCore:avr:13:clock=1M2,eeprom=keep,BOD=1v8,bootloader=no_bootloader -ide-version=10816 -build-path C:UsersuserAppDataLocalTemparduino_build_416861 -warnings=none -build-cache C:UsersuserAppDataLocalTemparduino_cache_133984 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.arduinoOTA.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsarduinoOTA1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsarduinoOTA1.3.0 -prefs=runtime.tools.avrdude.path=D:ProgrammingArduino 1.8.16datapackagesMicroCoretoolsavrdude7.1-arduino.1 -prefs=runtime.tools.avrdude-7.1-arduino.1.path=D:ProgrammingArduino 1.8.16datapackagesMicroCoretoolsavrdude7.1-arduino.1 -verbose D:ProgrammingArduino codesAttiny_PWMAttiny_PWM.inoD:ProgrammingArduino 1.8.16arduino-builder -compile -logger=machine -hardware D:ProgrammingArduino 1.8.16hardware -hardware D:ProgrammingArduino 1.8.16datapackages -tools D:ProgrammingArduino 1.8.16tools-builder -tools D:ProgrammingArduino 1.8.16hardwaretoolsavr -tools D:ProgrammingArduino 1.8.16datapackages -built-in-libraries D:ProgrammingArduino 1.8.16libraries -libraries D:ProgrammingArduino codeslibraries -fqbn=MicroCore:avr:13:clock=1M2,eeprom=keep,BOD=1v8,bootloader=no_bootloader -ide-version=10816 -build-path C:UsersuserAppDataLocalTemparduino_build_416861 -warnings=none -build-cache C:UsersuserAppDataLocalTemparduino_cache_133984 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.arduinoOTA.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsarduinoOTA1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=D:ProgrammingArduino 1.8.16datapackagesarduinotoolsarduinoOTA1.3.0 -prefs=runtime.tools.avrdude.path=D:ProgrammingArduino 1.8.16datapackagesMicroCoretoolsavrdude7.1-arduino.1 -prefs=runtime.tools.avrdude-7.1-arduino.1.path=D:ProgrammingArduino 1.8.16datapackagesMicroCoretoolsavrdude7.1-arduino.1 -verbose D:ProgrammingArduino codesAttiny_PWMAttiny_PWM.inoUsing board '13' from platform in folder: D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0Using core 'microcore' from platform in folder: D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0Detecting libraries used..."D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "C:UsersuserAppDataLocalTemparduino_build_416861sketchAttiny_PWM.ino.cpp" -o nulGenerating function prototypes..."D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "C:UsersuserAppDataLocalTemparduino_build_416861sketchAttiny_PWM.ino.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861preprocctags_target_for_gcc_minus_e.cpp""D:ProgrammingArduino 1.8.16tools-builderctags5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:UsersuserAppDataLocalTemparduino_build_416861preprocctags_target_for_gcc_minus_e.cpp"Компілювання скетчу..."D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "C:UsersuserAppDataLocalTemparduino_build_416861sketchAttiny_PWM.ino.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861sketchAttiny_PWM.ino.cpp.o"Compiling libraries...Compiling core..."D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -x assembler-with-cpp -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorepcrt.S" -o "C:UsersuserAppDataLocalTemparduino_build_416861corepcrt.S.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -x assembler-with-cpp -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoremillis.S" -o "C:UsersuserAppDataLocalTemparduino_build_416861coremillis.S.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring_digital.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_digital.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring_analog.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_analog.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring_shift.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_shift.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoreWInterrupts.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861coreWInterrupts.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring_pwm.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_pwm.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorewiring_pulse.c" -o "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_pulse.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoreHalfDuplexSerial.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coreHalfDuplexSerial.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoreTone.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coreTone.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorePrint.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861corePrint.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoreWMath.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coreWMath.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoreWString.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coreWString.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoremain.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coremain.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorepicoUART.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861corepicoUART.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocoremicros.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861coremicros.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny13a -DF_CPU=1200000L -DARDUINO=10816 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocore" "-ID:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0variantsattiny13a" "D:ProgrammingArduino 1.8.16datapackagesMicroCorehardwareavr2.3.0coresmicrocorepicoUART_rxISR.cpp" -o "C:UsersuserAppDataLocalTemparduino_build_416861corepicoUART_rxISR.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coremillis.S.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corepcrt.S.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coreWInterrupts.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_analog.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_digital.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_pulse.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_pwm.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corewiring_shift.c.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coreHalfDuplexSerial.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corePrint.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coreTone.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coreWMath.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coreWString.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coremain.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861coremicros.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corepicoUART.cpp.o""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar" rcs "C:UsersuserAppDataLocalTemparduino_build_416861corecore.a" "C:UsersuserAppDataLocalTemparduino_build_416861corepicoUART_rxISR.cpp.o"Архівування відкомпільованого ядра (кешування) в: C:UsersuserAppDataLocalTemparduino_cache_133984corecore_0e0dbc6b60ddf534e04b1636562a52e3.aLinking everything together..."D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -flto -fno-reorder-blocks -ffixed-r2 -ffixed-r3 -ffixed-r4 -g -fuse-linker-plugin -Wl,--gc-sections -mrelax -mmcu=attiny13a -nostartfiles -Wl,--undefined=__vectors -o "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.elf" "C:UsersuserAppDataLocalTemparduino_build_416861sketchAttiny_PWM.ino.cpp.o" "C:UsersuserAppDataLocalTemparduino_build_416861/corecore.a" "-LC:UsersuserAppDataLocalTemparduino_build_416861" -lm"D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.elf" "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.eep""D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.elf" "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.hex"cmd /C echo. && "D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-objdump" --disassemble --source --line-numbers --demangle --section=.text "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.elf" > "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino_attiny13a_1200000L.lst" "D:ProgrammingArduino 1.8.16datapackagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:UsersuserAppDataLocalTemparduino_build_416861/Attiny_PWM.ino.elf"Скетч використовує 984 байтів (96%) місця зберігання для програм. Межа 1024 байтів.Глобальні змінні використовують 30 байтів (46%) динамічної пам’яті,  залишаючи 34 байтів для локальних змінних. Межа 64 байтів.




dimich пише:

pulseIn() рахує, скільки ітерацій циклу встигає виконатись перед зміною стану піна. Звісно, при обробці переривання виконання циклу призупиняється і ітерації не рахуються. В ардуіно переривання по таймеру виникає кожні 64 * 256 = 16384 такта. Один і той же код обробника переривання на 16 МГц виконується в 1.7 рази швидше, ніж на 9.6 МГц.

Хм, можливо тому й спрацювало на тестері сервомашикок розділення значень 1200 та 1800 навпіл (600 і 900) на частоті 9.6МГц. Але ж чомусь в відеоуроках з ютубу в людей одразу виходить, що аттіні зчитує PWM сигнал коректно на цій частоті, без розділення значень сигналу два.


dimich пише:

Доречі, вимкнути дільник частоти на 8 можна і програмно за допомогою clock_prescale_set(), без перешивання фʼюза.

А підскажете на майбутнє як це зробити в коді? Це потрібно в дужках вписати якесь значення?


dimich пише:
Daminski пише:

і чи можна тепер заставити тіні працювати і з іншими пристроями окрім тестера сервомашинок?

Для точного виміру інтервалів часу я би не звʼязувався з бібліотеками ардуіно, а виміряв би таймером напряму.

А як можна виміряти значення PWM напряму без таймера?

#2 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-10 01:40:26

dimich пише:
Daminski пише:

всерівно чомусь нема ніякої реакції на PWM. Чіп аттіні прошиваю на 9.6МГц

Здається мені, вашу задачу простіше і надійніше вирішити без усяких кучерявих pulseIn(). Яка конкретно умова задачі? Із того, що зрозуміло з коду:
Якщо тривалість імпульсів більше 1800 мкс - видати на пін високий рівень.
Якщо менше 1200 мкс - видати низький рівень.

Яка необхідна точність?
Що має відбуватись, якщо імпульси перестали надходити? Який таймаут на очікування початку імпульса?
Що має відбуватись, якщо імпульс триває довше певного ліміта? Який цей ліміт?

Так, задача максимально проста: коли є 1800 імпульсів – подати високий сигнал, а коли менше 1200 імпульсів – подати низький сигнал.

Думаю точність до 50 мікросекунд буде допустима. Навіть не знаю як це можна зробити без pulseIn(). Здавалося б така проста задача, яка одразу в всіх працює в відеоуроках з ютубу. А на практиці не все так просто...

Не зовсім зрозумів про ліміти. А таймаут на очікування  початку імпульсів я ставив 25 мікросекунд. В функції pulseIn() це значення було "25000" як третій аргумент.

#3 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-09 20:09:03

dimich пише:

Або просто

  cli();
...
  sei();

Дякую, так вже не видає помилки, але всерівно чомусь нема ніякої реакції на PWM. Чіп аттіні прошиваю на 9.6МГц

#4 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-09 19:54:57

dimich пише:

А який пекедж використовуєте для attiny13? MicroCore?

Ні, я використовував руснявий GyverCore, здається там новіше все.


dimich пише:

Тут уже дивіться, чим відрізняється форма сигналів на піні при використанні тестера та "інших пристроїв". Осцилограф вам у поміч.

Ех, нажаль поки осцилографа не маю. Але схоже треба буде купити якийсь big_smile

#5 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-09 19:29:36

Honey пише:

pinMode(3, INPUT);
замініть на
pinMode(3, INPUT_PULLUP);
Якщо після цього і з тестером перестане працювати, значить спрацьовувало від наводок.

Додав "_PULLUP", теж запрацювало з тестером сервомашинок і значеннями 600 та 900

Honey пише:

Як Вам радив dimich, виконуйте pulseIn() при вимкнених перериваннях
__builtin_avr_cli();
ch3 = pulseIn(3, HIGH, timeout);
__builtin_avr_sei();

На такий код видає помилку "'builtin_avr_cli' was not declared in this scope", хоча в коді написано саме "builtin_avr_cli();"
"

#6 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-09 10:38:27

Думаю не посилився. Я використовував для зчитування сигналу пін #3, який являється другою від ключа ніжкою на мікросхемі. Якщо я не задаю на нього зчитування сигналу, то реакції ніякої немає. А от якщо цей вивід налаштований на зчитування сигналу і "висить в повітрі", то так, він хибно вмикається. Як можна програмно зчитувати наявність чи відсутність сигналу? Той код, що ви скинули вище чомусь не запрацював. Ну і саме головне – незрозуміло чому на тестері сервомашинок чіп спрауьовує від значень 600 та 900 імпульсів, а з іншими пристроями вже не працює і не може працювати на 1200 і 1800 імпульсів:(

#7 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2024-03-08 23:28:26

Хм, декілька разів ще восени заходив сюди і наче не було відповіді від вас. А зараз зайшов і бачу, що відповідь була в той час. Тоді повернемось до теми, бо проблема так і не вирішилась за цей час.

Honey пише:

А Ви тестували скетч на нано і параметри 1200 і 1800 підібрали на ній?

Я тестував цей самий код на модулі з Attiny85, який на товстому текстоліті і вставляється в USB  порт. Там все запрацювало як треба зі значеннями 1200 та 1800. А от на Attiny13 цей самий код не завівся.

Honey пише:

Тоді переконайтеся, що при компіляції скетчу для нано була виставлена частота процесора 16МГц, а для тіні 9.6МГц. І взагалі, переконайтеся, що pulseIn на тіні працює. Згідно її опису, якщо імпульс не виявлено, то вона повертає 0, додайте в код: digitalWrite(1, ch3 ? HIGH : LOW); і подивіться, що на пін 1 коли є ШІМ і коли немає.

Для тіні стоїть 9.6МГц. Вставив код digitalWrite(1, ch3 ? HIGH : LOW); і чомусь ніякої реакції у світлодіода не було, що з приєднаним проводом ШІМ сигналу від тестера сервомашинок, що з від'єднаним проводом... Як можна ще спробувати визначити чи підключений провід з ШІМ сигналом?

Ще робив експерименти з кількістю імпульсів зчитування ШІМ сигналу і чомусь від тестера сервомашинок тіні запрацювала на значеннях 600 та 900. При чому тестер сервомашинок видає 800-2200 імпульсів ШІМ. І чомусь, коли в коді вказано максимально 900 імпульсів, на тестері сервомашинок крутилку треба майже до кінця повернути, тоді є реакція. Але прикрий момент у тому, що з іншими пристроями, які генерують ШІМ сигнал аттіні знов не працює, навіть з такими налаштуваннями зчитування сигналу.

Чи є цьому якесь пояснення і чи можна тепер заставити тіні працювати і з іншими пристроями окрім тестера сервомашинок?

#8 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-17 04:56:50

avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e9007 (probably t13a)
avrdude: reading lfuse memory ...
avrdude: writing output file <stdout>
0x3a
avrdude: reading hfuse memory ...
avrdude: writing output file <stdout>
0xfb

avrdude done.  Thank you.

Наскільки я зрозумів, зараз ф'юзи 3A FB і в калькуляторі ф'юзів на них відключено параметр "Divide clock by 8 internally; [CKDIV8=0]", тобто ділителя частоти не має бути. А при цьому чомусь простий код PWM вимикача всерівно не працює sad В чому ще може бути причина? Частота прошивки 9.6МГц, в якості PWM сигналу використовую тестер для сервомашинок... Але тепер радує, що вже не видає помилку при прошивці, яка була з самого початку smile

#9 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-17 04:18:00

Honey пише:

Спробуйте замінити кабель USB-miniUSB і підключити в інший USB-порт, бо щось у Вас проблема з самого початку має імовірнісний характер і прогресує.
Потестуйте на пункті 5 інструкції, має бути 100% стабільність і повторюваність.
Можна ще зробити так (скачати флеш):
avrdude -P COM4 -b 115200 -c arduino -p m328p -U flash:r:flashdump.hex:i
А потім повторювати (порівнювати зі скачаним):
avrdude -P COM4 -b 115200 -c arduino -p m328p -U flash:v:flashdump.hex:i

Дякую, ваш рецепт з командами допоміг повернути до нормальної роботи мою Arduino Nano smile

Хочу уточнити, що коректно працює AVRdude з вашого посилання і тільки якщо я її папку розміщаю на диску С:. А от "вбудована" версія AVRdude, котра йде в папці з ардуіно (C:/Users/user/AppData/Local/Arduino15/packages/arduino/tools/avrdude6.3.0-arduino17) чомусь взагалі не реагує на команди. Можливо тому що файл avrdude.conf знаходиться в іншій папці (C:/Users/user/AppData/Local/Arduino15/packages/arduino/tools/avrdude6.3.0-arduino17/etc).

Буду ще раз пробувати зчитати ф'юзи в аттіні. Також купив програматор USBasp і в ньому виявилась застаріла прошивка, для заміни якої потрібен другий такий самий програматор roll  Тож сподіваюсь щось вдасться зробити за допомогою ардуіно в якості програматора для аттіні.

#10 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-13 15:17:14

Хм,  може й дійсно проблема з моїм програматором у вигляді ардуіно нано. Ще подивився на те, які налаштування мають ті ф'юзи, що скинув вище. В них параметр CKDIV8 (ділитель частоти на 8) відключений. Але дивно чому всерівно не було ніякої реакції на PWM сигнал.

А ось що мені видав IDE, коли спробував повторно записати скетч з ArduinoISP на свою плату ардуіно нано. В принципі це те ж саме, що мені писало, коли прошивав Attiny13A за допомогою NANO. Як це виправити?

Помилка запису завантажувача.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): unknown response=0x12


А коли натиснув ще раз на кнопку "Записати завантажувач", то виникла вже така помилка:

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Помилка запису завантажувача.


Через деякий час пробував завантажити простий скетч блінк в свою ардуіно нано, видає ту ж саму помилку. Виходить, що якимось чином палата ардуіно зіпсувалась sad

#11 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-12 04:27:12

О, через ще 100500 спроб щось вийшло! Довелось прибрати з "t13a" літеру "a", хоча в мене мікросхема Attiny 13А. Що тепер робити далі, щоб запрацювало зчитування PWM сигналу? І щось дивне сталось з контролером. Чомусь перестав працювати код, навіть самий простий типу блінк.

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9007 (probably t13)
avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude: writing output file "<stdout>"
0x3a
avrdude: reading hfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude: writing output file "<stdout>"
0xfb

avrdude: safemode: Fuses OK (E:FF, H:FB, L:3A)

avrdude done.  Thank you.

#12 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-12 03:58:48

Honey пише:

Ви вказали в команді перед COM4 якийсь не той ключик, а по замовчуванню воно використовує COM1.
Команда для читання ф'юзів така:
avrdude -P COM4 -b 19200 -c avrisp -p t13a -U lfuse:r:-:h -U hfuse:r:-:h

Дякую, тепер хоч без ієрогліфів показало щось, але всерівно якась помилка sad

avrdude warning: attempt 1 of 10: not in sync: resp=0x15
avrdude warning: attempt 2 of 10: not in sync: resp=0x15


avrdude error: protocol expects OK byte 0x10 but got 0x14

avrdude error: protocol expects sync byte 0x14 but got 0x01
avrdude error: protocol expects sync byte 0x14 but got 0x10
avrdude error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower ISP clock frequency, e.g. -B 125kHz
        - use -F to override this check

avrdude error: unknown response=0x12

avrdude done.  Thank you.

#13 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-11-10 23:50:47

Нарешті розібрався як за допомогою командної строки зчитувати ф'юзи, знайшов приклади на ютубі. Але всерівно щось не так. Аттіні прошивається нормально, а в командній строці при спробі зчитати інформацію про ф'юзи видає помилку, наче плата не підключена. Хоча порт вказував вірний, як пише в Arduino IDE (COM4), а тут чомусь пише "com1"... І ось яку помилку видає зараз в командній строці:

avrdude: ser_open(): can't open device ".com1": ═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы.

Що це тепер може бути?

#14 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-10-13 23:03:06

Honey пише:

Про ф'юзи гляньте в цій темі, щоб не повторюватись

Дякую, трохи почитав цю тему, подивився калькулятьр ф'юзів, але не розумію як це мені може допомогти. Коли я прошиваю Attiny мені перший раз видає помилку, що написана червоним текстом на початку теми, а на другу спробу завантажити скетч - нормально прошиває чіп і працює будь який простий код. Але саме функція pulseIn() таке враження, що взагалі не працює і нічого не считує. Хоча сигнальний провід від тестера сервомашинок підключений в наступний пін після піна з ключем (ніжка №2, пін PB3).

Чи ці ф'юзи можуть якось впливати на роботу функції pulseIn()?

#15 Re: Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-10-13 13:32:48

Honey пише:

Покажіть ф'юзи з тіні. Можливо там по замовчуванню встановлений дільник частоти на 8.

А що таке ф'юзи?

#16 Програмування Arduino » Не працює код PWM вимикача на голому чіпі Attiny13 » 2023-10-13 12:21:29

Daminski
відповідей: 32

Вітаю! Намагаюсь зробити, щоб запрацював елементарний код PWM вимикача на Attiny13 і він чомусь не працює. В якості генератора PWM імпульсів використовую тестер для сервомашинок. Доречі цей самий код, який я наведу нижче, нормально працює з заводським модулем Attiny85, який має свій завантажувач та вставляється в USB. Не можу зрозуміти в чому проблема при завантаженні цього ж коду на голий чіп Attiny13. Для прошивки чіпа використовую Arduino Nano, прошиваю через макетну плату та перемички.

Ось код:

void setup() {
    pinMode(3, INPUT);
    pinMode(0, OUTPUT);
    digitalWrite (0, LOW);
}
void loop() {
    int ch3 = pulseIn(3, HIGH);
    if (ch3 < 1200) {
    digitalWrite (0, LOW);
} 
    if (ch3 > 1800) {
    digitalWrite (0, HIGH);
}  
}

Ще буває мені видає помилку при заливці скетча в голий чіп Attiny13, але незваєаючи на це, натискаю кнопку завантаження скетчу вдруге і все записується. Інші коди, без PWM працюють нормально.

avrdude warning: attempt 1 of 10: not in sync: resp=0x15
avrdude warning: attempt 2 of 10: not in sync: resp=0x15

avrdude error: protocol expects OK byte 0x10 but got 0x14

avrdude error: protocol expects sync byte 0x14 but got 0x01
avrdude error: protocol expects sync byte 0x14 but got 0x10
avrdude error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower ISP clock frequency, e.g. -B 125kHz
        - use -F to override this check

avrdude error: unknown response=0x12
avrdude error: unknown response=0x12


Підскажіть, будь ласка, в чому може бути справа?

#17 Апаратні питання » IR датчик наближеня, чому з пультом ДУ працює на більш дальню відстань » 2022-10-31 17:51:31

Daminski
відповідей: 1

Вітаю. Хочу зробити датчик наближення, щоб він спрацьовував на перешкоди більш ніж 4 метри. І зіткнувся з проблемою, що світлодіод з магазину (TSAL6100), хоч і потужний, але не дозволяє фотоприйомнику спрацювати на перешкоду на відстані 4-5 метрів, а якщо на цю перешкоду посвічу пультом від телевізора, то все працює, фотоприйомник уловлює відобрадений світловий сигнал. Можливо хтось може підсказаьи чому пульт від телевізора потужніше світить, чи в чому секрет? І як добитися такого ж ефекту без пульта ДУ?

Опишу, що зробив я. Мій датчик зараз може реагувати на перешкоду максимум 1.75м від себе, і то з двома світлодіодами (а в пульті ДУ всього один, і світить далі)
Взяв фотоприйомник на 38 кілогерц, який може уловлювати світловий сигнал на відстані 45м, спаяв генератор імпульсів 38кГц для IR світлодіоду і другий генератор на 200Гц, який постійно вмикає/вимикаєте перший сигнал (38кГц, щоб фотоприйомник постійно оновлювався, бо від простого разового увімкнення модульованого сигналу він лише на секунду видасть високий сигнал на виході та погасне).

Можливо в пульті ДУ стоїть якийсь ще більш потужний світлодіод, чи справа в схемі кодування його сигналу? Хочу експериментував з генератором частоти та складності, якщо змінювати частоту, то реакція погіршувалася. Буду вдячний за поради чи підсказки

#18 Апаратні питання » Як зробити відключення кнопки через секунду на NE555 » 2022-08-12 10:41:27

Daminski
відповідей: 1

Доброго дня, панове. Зіткнуся із складністю використання мікросхеми NE555. Мені потрібно, щоб при спрацюванні її тригера навантаження увімкнулося на одну-дві секунди а потім по таймеру мікросхеми вимкнулося. Але чомусь при утриманні високого сигналу ну на тригерному піні, навантаження постійно увімкнене доки я не відключу звідти високий сигнал. І навантаження потім вимикається одразу ж як відпускаю кнопку, а так бути не повинно.

Як зробити так, щоб навіть якщо утримується натисненою кнопка, замикаюча 5в на тригерному пін, сама ж "відвалилася" (розімкнула ланцюг подачі 5в на тригер мікросхеми) за пів секунди, щоб таймер відрахував свої 1-2 секунди і висунув навантаження, навіть якщо ця тригерна кнопка і досі утримується?
Це питання мабуть більше до схемотехніків, бо треба щоб схема працювала без Ардуіно.

Підвал форуму