Ich hab das programm nun auf den Tiny geschrieben.
Nur scheint es darauf nicht zu funktionieren. Das ist mein Code:
Ich habe einzig den TCCR0=0x05; auf TCCR0A=0x05; gewechselt da der beim Tiny anderst heisst. Hab ich sonst noch einen Fehler?Code:#include <avr/io.h> #include <inttypes.h> #include <avr/interrupt.h> #define F_CPU 3686400 #define timer (256-F_CPU/64/1000) #define RotH PORTB0 #define RotV PORTB1 #define BlauV PORTB2 int ms; void initPorts() { DDRB |= (1<<PB0) | (1<<PB1) | (1<<PB2); } ISR(TIMER0_OVF_vect) //Timer Interrupt Vector { TCNT0 = timer; ms++; } int main(void) { initPorts(); // Timer Interrupt initialisieren TIMSK |= (1<<TOIE0); TCCR0A=0x05; // 0b00000011, Vorteiler 1024 ca. 4khz sei(); // enable interrupts do { if(ms <= 1) { PORTB &= ~( (1<<RotH) | (1<<RotV) | (1<<BlauV)); //PORTB Pins 0,1,2 auf low } if(ms >= 5& ms <= 100) { PORTB |= (1<<RotV); } if(ms >= 100& ms <= 210) { PORTB |= (1<<RotH); } if(ms >= 210& ms <= 400 ) { PORTB |= (1<<BlauV); PORTB &= ~(1<<RotV); } if(ms >= 600) { ms = 0; } } while (true); }
Auf dem Mega 8 hat es wunderbar funktioniert







Zitieren

Lesezeichen