Gast
#1144045
Tag Jungs,
hätte mal ne Frage und zwar geht es um einen 8-Bit Timer
beim Atmel32. Ich will das alle 10sec ein bestimmter Programmablauf
erfolgt, jetz wollt ich von euch wissen ob es so geht wie ich das hab.
Globale Interrupts sind natürlich aktiviert, alle Variablen sind auch
definiert usw. Im Prinzip macht er quasi alle 0.01 sec die zählvar
(Anfangswert = 0) +1, das soll er nun 1000 mal machen, da dann die
10 sec um sind und dann "Regler_go" ausführen, das gleiche dann
wieder von vorne.
Schonmal THX für eure Antworten im vorraus !!!
// -=> Regler/Timer initialisieren <=-
void Regler_INIT( void ){
TCCR2 |= (1<<WGM21)|(1<<CS20)|(1<<CS22); // CTC-Mode, Prescaler,
// clk/1024 = 14400Hz
OCR2 = 143; // ==> 14400/144 = 100Hz
TIMSK |= (1<<OCIE2);
}
void Regler_go( void ){
/* Hier steht jetz was er machen soll, für Frage unwichtig :-) */
}
// -=> INTERRUPTS <=-
// Compare with OCR2
SIGNAL( SIG_OUTPUT_COMPARE2 ){
if(zahlvar <= 1100){zahlvar++;}
if(zahlvar == 1000){zahlvar = 0; Regler_go();}
}
ps. ja ich weiß mit nem 16bit Timer würds einfacher funktionieren aber
ich brauch den 8-Bit-Timer
Schöne Grüße aus dem Bay. Wald
daRki