PloechingerD
12.11.2013, 08:52
Hallo,
ich bin ein Neueinsteiger und möchte erste Versuche mit einem Timer Interrupt machen.
Ich benutze ein STK 500 mit einem ATmega168.
#include <avr/io.h>
#include "lcd-routines.h"
#include <stdlib.h>
#include <avr/interrupt.h>
volatile int i;
int main(void)
{
DDRB = 0x00; //PortB als Eingang
PORTB = 0xFF; //Port B auf 0xFF setzen
lcd_init(); //LCD Initialsieren
TCCR0B = (1<<CS02); //TIMER definieren
TIMSK0 |= (1<<TOIE0);
sei(); //Interrupt aktivieren
while(1)
{
{
char Buffer[20];
itoa( i, Buffer, 10 );
lcd_string( Buffer ); //Ausgabe LCD
lcd_setcursor( 0, 2 );
lcd_string("uSiemens"); //Ausgabe LCD
}
}
}
ISR (TIMER0_OVF_vect) //Interrupt
{lcd_clear();} //Display löschen
Leider funktioniert die Interrupt Routine anscheinend nicht, da kein Ergebnis am Display zu sehen ist.
ich bin ein Neueinsteiger und möchte erste Versuche mit einem Timer Interrupt machen.
Ich benutze ein STK 500 mit einem ATmega168.
#include <avr/io.h>
#include "lcd-routines.h"
#include <stdlib.h>
#include <avr/interrupt.h>
volatile int i;
int main(void)
{
DDRB = 0x00; //PortB als Eingang
PORTB = 0xFF; //Port B auf 0xFF setzen
lcd_init(); //LCD Initialsieren
TCCR0B = (1<<CS02); //TIMER definieren
TIMSK0 |= (1<<TOIE0);
sei(); //Interrupt aktivieren
while(1)
{
{
char Buffer[20];
itoa( i, Buffer, 10 );
lcd_string( Buffer ); //Ausgabe LCD
lcd_setcursor( 0, 2 );
lcd_string("uSiemens"); //Ausgabe LCD
}
}
}
ISR (TIMER0_OVF_vect) //Interrupt
{lcd_clear();} //Display löschen
Leider funktioniert die Interrupt Routine anscheinend nicht, da kein Ergebnis am Display zu sehen ist.