Hallo,
ich möchte aller 3 sekunden eine aufgabe (Beschleunigen) ausführen, doch es funktioniert nicht![]()
der Code sind folgendermaßen aus (gekürzt):
Woran kann das liegen ?Code:#define Task_1 0 volatile unsigned int Timer1_ms; volatile unsigned char TaskFlags; int main(void) { init(); // init ports && ext Interrupts ioinit(); // init COM fdevopen(uart_putchar, NULL, 0); timer1_init(); // init Timer1 TIMSK |= (1<<TOIE0); // timer0 twi_init(); sei(); // Interrupts aktivieren ... if ( TaskFlags & ( 1 << Task_1) ) { TaskFlags &= ~(1<< Task_1); .... } else { ... } } void timer1_init(void) { TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10); TCCR1B = (0<<CS12) | (0<<CS11) | (1<<CS10); TIMSK &= ~0x3c; OCR1A = 0; OCR1B = 0; } SIGNAL (SIG_OVERFLOW0) { Timer1_ms++; if(Timer1_ms % 3 == 0) // % 3 == mod 3 for 3 seconds { TaskFlags |= ( 1<< Task_1 ); } }
danke







Zitieren

Lesezeichen