Go Down

Topic: PWM VELOCE (Read 5 times) previous topic - next topic

PaoloP

La definizione della funzione delay la trovi nel file wiring.c nella cartella hardware/arduino/cores/arduino/..
Usa il timer 0.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Burt

PaoloP:
A ecco, allora forse è per quello che non lavora correttamente. Oggi vado a vedere e provo se riesco a risolvere il problema utilizzando un altro timer.

Grazie molte e a presto.

leo72

Usa il timer 2, è a 8 bit come lo 0.

Burt

... Infatti ho provato proprio con il timer 2 e tutto funziona correttamente.

Grazie mille e a presto!

?R

mi collego a questo topic perchè il mio problema è simile, io volevo fare dei segnali pwm ad una frequenza compresa tra 15 e 20 khz per controllare dei motori... io uso un arduino mega quindi i registri dei timer abbinati ai pin sono un po' diversi e mi sono ispirato a quello che ho trovato qui: http://sobisource.com/?p=195 per scrivere questo codice che mi da circa 31khz sul pin 9
Code: [Select]
void setup()
{
TCCR2B = (TCCR2A & 0xF8) | 0x01 ;
pinMode(9, OUTPUT);
analogWrite(9,127);
}

void loop(){}

per me però sono troppi perchè ho degli integrati che sopra i 20khz non vanno e quindi quello è il mio limite massimo...
ho provato a leggere vari post per capire come "giocare" con i timer e ho provato varie cose, come dicono qua: http://it.emcelettronica.com/fast-pwm-su-arduino-valida-alternativa-all%E2%80%99istruzione-analogwrite#_ che cambiano la frequenza diminuendo la sensibilità del pwm, ma non sto ottenendo risultati...
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Go Up