Gast
#456581
Hallo ihr! Bin gerade dabei, mir mittels einigen Testprogrammen den µC ein wenig kennenzulernen. Gerade eben möchte ich einfach nur eine LED zum blinken bringen, um die Timer-Funktion auszuprobieren. Beim 8051er macht man das wie folgt: #include <AT89X52.H> sbit LED = P1^0; void InitTimer0 (void) { IE = IE | 0x82; TMOD = TMOD | 0x01; //Timer0 einschalten (16Bit) TL0 = 0x3C; TH0 = 0xB0; TR0 = 1; } void ISR_Timer0(void) interrupt 1 { int ueberlauf; ueberlauf++; if(ueberlauf == 10) { LED = ~LED; //LED != LED; --> Osterer //P1_0 = ~P1_0; ueberlauf = 0; } //Startwert des Timers setzen TL0 = 0x3C; TH0 = 0xB0; } void main (void) { InitTimer0(); while(1) {} } Wie werden aber die Register bei einem ATmega8 gesetzt? Folgendes hab ich ausprobiert: #include <avr/io.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <inttypes.h> #include <stdlib.h> #include <string.h> #include <stdio.h> void InitTimer0 (void) { SREG = SREG |0x80; TCCR0 = TCCR0 | 0x01; // TIMSK = TIMSK | 0x01; } void ISR_Timer0(void) interrupt 10 { // noch nix da } void main (void) { InitTimer0(); while(1); } Mit der Bitte um Hilfe LG Birgit