Hallo,
also ich häng jetz mal mein Beispiel für den mega8 ms timer an.
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000
#define timer (256-F_CPU/64/1000)
int ms;
ISR(TIMER0_OVF_vect) //Timer Interrupt Vector
{TCNT0 = timer;
ms++;
}
int main(void)
{
//Ports Init
DDRC |= (1<<PORTC3);
//Timer Init
TIMSK |= (1<<TOIE0); //Timerinterrupt freigeben
TCCR0 |= (1<<CS00) | (1<<CS01) | (!(1<<CS02)); //Timer Prescaler = 64
sei(); //Interrupts global aktivieren
//main Schleife
for (;;)
{ if(ms >=100)
{PORTC ^= (1<<PORTC3);ms = 0;}
}
}
läuft nur timer0 über so wird in die timer isr gesprungen. hoffe ich konnt dir helfen. Ach übrigens 0x05 ist 0b00000101.
mfg franz
Lesezeichen