Ciao, sto cercando di capire come far generare ad un arduino UNO una onda quadra al 50% di duty cycle con una frequenza variabile che vada da 16666,6667 Hz a 165000 Hz.
Ho letto di tutto un po'ma quel che riesco ad ottenere è solo confusione...
... la più semplice usare la funzione tone(), che fa parte del core di Arduino e che trovi ben descritta, con tutte le sue possibilità ed i suoi limiti, QUI
... la più complicata, studiarti il datasheet e mettere mano ai timer della MCU per generare il priodo della durata richiesta.
C:\Documents and Settings\Andrea\Documenti\Arduino\sketch_jun19b\sketch_jun19b.ino: In function 'void loop()':
sketch_jun19b:61: error: 'TCCR2' was not declared in this scope
; Serial.println(TCCR2,HEX);
^
sketch_jun19b:63: error: 'OCR2' was not declared in this scope
Serial.println(OCR2,HEX);
^
exit status 1
'TCCR2' was not declared in this scope
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
"
Io ho guardato ed effettivamente non mi pare ci siano le dichiarazioni per OCR2 e TCCR2...
Qualcuno ha mai usato questa libreria? (Frequencytimer2)
Installa l'ultima versione dell'IDE 1.8.5
1.1 nelle impostazioni (preferences) metti il segno di spunta per i dettagli (verbose) sia in compilazione che upload.
C:\Programmi\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Programmi\Arduino\hardware -tools C:\Programmi\Arduino\tools-builder -tools C:\Programmi\Arduino\hardware\tools\avr -built-in-libraries C:\Programmi\Arduino\libraries -libraries C:\Documents and Settings\Andrea\Documenti\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10805 -build-path C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261 -warnings=none -build-cache C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_cache_457265 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Programmi\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Programmi\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Programmi\Arduino\hardware\tools\avr -verbose C:\Documents and Settings\Andrea\Documenti\Arduino\sketch_jun19b\sketch_jun19b.ino
C:\Programmi\Arduino\arduino-builder -compile -logger=machine -hardware C:\Programmi\Arduino\hardware -tools C:\Programmi\Arduino\tools-builder -tools C:\Programmi\Arduino\hardware\tools\avr -built-in-libraries C:\Programmi\Arduino\libraries -libraries C:\Documents and Settings\Andrea\Documenti\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10805 -build-path C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261 -warnings=none -build-cache C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_cache_457265 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Programmi\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Programmi\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Programmi\Arduino\hardware\tools\avr -verbose C:\Documents and Settings\Andrea\Documenti\Arduino\sketch_jun19b\sketch_jun19b.ino
Using board 'uno' from platform in folder: C:\Programmi\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Programmi\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Programmi\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Programmi\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Programmi\Arduino\hardware\arduino\avr\variants\standard" "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\sketch\sketch_jun19b.ino.cpp" -o "nul"
"C:\Programmi\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Programmi\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Programmi\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2" "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\sketch\sketch_jun19b.ino.cpp" -o "nul"
"C:\Programmi\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Programmi\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Programmi\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2" "C:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2\FrequencyTimer2.cpp" -o "nul"
Generating function prototypes...
"C:\Programmi\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Programmi\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Programmi\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2" "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\sketch\sketch_jun19b.ino.cpp" -o "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Programmi\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\preproc\ctags_target_for_gcc_minus_e.cpp"
Sto compilando lo sketch...
"C:\Programmi\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Programmi\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Programmi\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2" "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\sketch\sketch_jun19b.ino.cpp" -o "C:\DOCUME~1\Andrea\IMPOST~1\Temp\arduino_build_700261\sketch\sketch_jun19b.ino.cpp.o"
C:\Documents and Settings\Andrea\Documenti\Arduino\sketch_jun19b\sketch_jun19b.ino: In function 'void loop()':
sketch_jun19b:61: error: 'TCCR2' was not declared in this scope
Serial.println(TCCR2,HEX);
^
sketch_jun19b:63: error: 'OCR2' was not declared in this scope
Serial.println(OCR2,HEX);
^
Uso la libreria frequencytimer2 nella cartella: C:\Documents and Settings\Andrea\Documenti\Arduino\libraries\frequencytimer2 (legacy)
exit status 1
'TCCR2' was not declared in this scope
Scusa ma vedo che l'errore è nel loop() ...
... ma hai modificato l'esempio della libreria ? Sicuro di aver installato QUESTA libreria e NON la versione per la Teensy ?
Sketch uses 3342 bytes (10%) of program storage space. Maximum is 32256 bytes.
Global variables use 436 bytes (21%) of dynamic memory, leaving 1612 bytes for local variables. Maximum is 2048 bytes.