Hallo
Daten empfangen machst du am besten mit dem UART Recive Complete Int.
Wenn der AVR ein Zeichen empfangen hat, löst er einen Interrupt aus. Daraufhin springt er in die UART Recive Complete Int. Routine. Dort speicherst du UDR in eine Variable und fertig.
In deinem Hauptprogramm wertest du das Zeichen dann aus.
So ganz grob in der Weise
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
volatile uchar Daten;
SIGNAL(SIG_UART_RECV)
{
Daten = UDR;
}
void main(void)
{
UCSRB = (1<<TXEN) |(1<<RXEN)|( 1<<RXCIE) ;
//Interrupts freigeben
sei();
for(;;)
{
if(Daten == 'A')
{
Daten = 0;
// Mach was bei A
}
if(Daten == 'e')
{
Daten = 0;
// Mach was bei e
}
}
}
MFG
Dieter
Lesezeichen