hallo zusammen,
ich bin am verzweifeln ich schaffe es nicht das der timer0 richtig funktioniert.
![]()
der atmega lauft mit 16Mhz auf der rn control 1.4
es ist das erste mal das ich diesen timer brauche und hab deshalb auch keine erfahrung und versuch mir mit einem reinen timer programm die sache zu erklären
ich hätte gerne das er alle 10 ms zur probe eine LED ein/ausschaltet.
mein code
bei 16 Mhz müsste der timer alle 64µs überlaufen?Code:#include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/signal.h> #include <string.h> SIGNAL(SIG_OVERFLOW0){ static uint8_t count=0; if (count == 156) { count = 0; //zähler auf 0 if(bit_is_set(PORTC,7)) //PIN gesetzt ??? PORTC &= ~(1<<PC7); else PORTC |= (1<<PC7); } else { count++; // zahler erhöhen } TCNT0=0; //timer auf 0 } int main (void){ TCCR0 |= (1 << CS00)|(1 << CS02); //prescaler 1024 TIMSK |= (1 << TOIE0); // Overflow Interrupt aktivieren sei(); for(;;){ //mach was } }
wenn ja dann muss er 156 mal überlaufen um die led einmal ein und aus zu schalten? das wären dann alle 10 ms
ich weiß leider nicht ob das so stimmt?
besten dank!
servusssss
ps.: ich hab leider nicht im forum suchen könne falls es schon eine eintrag über dieses problem gibt.







Zitieren

Lesezeichen