L' idea iniziale era: vediamo di capire come far lampeggiare due led a diversa velocità, anzi, vediamo se riesco a generare due onde quadre con frequenze diverse (e prestabilite
Ho cominciato usando un solo timer e tutto sembrava funzionare, alchè ho scritto il codice pari pari cambiando sol il numero del timer da 0 a 2, e qui mi sono accorto che qualcosa non quadra.
Il codice che ho scritto è il seguente:
- Codice: Seleziona tutto
const int led1 = 3;
const int led2 = 5;
void setup() {
DDRD = B11111111;
noInterrupts(); // disable all interrupts
TCCR0A = 0;
TCCR0B = 0;
TCNT0 = 0;
TIMSK0 = 0;
TIFR0 = 0;
OCR0A = 30; // compare match register
// TCCR0A |= (1 << WGM01); // CTC mode
TCCR0A = B00000010;
// TCCR0B |= (1 << CS00); // prescaler
// TCCR0B |= (1 << CS02); // prescaler 256
TCCR0B = B00000100;
// TIMSK0 |= (1 << OCIE0A); // enable timer compare interrupt
TIMSK0 = B00000010;
TCCR2A = 0;
TCCR2B = 0;
TCNT2 = 0;
TIMSK2 = 0;
TIFR2 = 0;
OCR2A = 30;
// TCCR2A |= (1 << WGM21); // CTC mode
TCCR2A = B00000010;
// TCCR2B |= (1 << CS20); // prescaler
// TCCR2B |= (1 << CS22); // prescale 256
TCCR2B = B00000100;
// TIMSK2 |= (1 << OCIE2A); // enable timer compare interrupt
TIMSK2 = B00000010;
interrupts(); // enable all interrupts
}
ISR(TIMER0_COMPA_vect){ // timer compare interrupt service routin
PORTD ^= _BV(led1); //macro _BV setta il bit relativo al valore (bit to val)
} // al posto di fare (1 << val)
ISR(TIMER2_COMPA_vect){
PORTD ^= _BV(led2);
}
void loop() {
}
Ho utilizzato i due timer a 8 bit, settando i prescaler a clock/256 ed i registri di comparazione OCRnA allo stesso valore, ma cio che viasualizzo all' oscilloscopio è questo:
Mi aspettavo di avere due forme d' onda identiche, al massimo leggermente sfasate ma con identica frequenza.
Ho fatto un po di prove ma nulla.
Non capisco cosa sbaglio.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)






