Gast
#1131830
Hallo zusammen! Ich habe erst angefangen Mikrocontroller zu bedienen und habe meine ersten Erfahrungen gemacht. Ich programmiere in C mit dem AVR Studio. Nun mein Problem: Ich will einen Timer programmieren mit dem mega 8. Mit dem steuere ich eine LED an die im Sekundentakt ein- und ausschalten soll. Die Frequenz habe ich bei den Configuration Options auf 8000000 Hz gestellt. Doch statt nach einer Sekunde zu blinken benötigt er etwa 8 Sekunden. Was habe ich falsch? Hier der Code: #include <avr/interrupt.h> #include <stdlib.h> #include <avr/io.h> volatile static uint32_t count = 0; ISR(TIMER1_OVF_vect) { count++; } int main (void) { TCCR1B |= (1<<CS10); TIMSK |= (1<<TOIE1); sei(); DDRC |= (1<<2); PORTC |= (1<<2); while(1) { if (count < 122) PORTC &= ~(1<<2); if (count >= 122) PORTC |= (1<<2); if (count > 244) count = 0; }return 1; } Diese 122 errechnen sich aus 8000000 Hz Taktfrequenz / 65536(da 16-Bit Timer) = ca. 122. Was habe ich mir falsch überlegt? Grüsse Alex