Das ist gar nicht so schwer.
Da Du sowieso jedes Zeichen einzeln empfängst und im Empfangs-Interrupt auswerten musst, brauchst Du nur in einer statischen Variable mitzuzählen, wie viele Zeichen schon angekommen sind.
Ich könnte mir die Interrupt-Routine in etwa so vorstellen:
Code:
signal (SIG_UART0_RECV)
{
static unsigned char count, Data;
unsigned char DataIn;
DataIn = UDR0;
if (count > 7)
{
SaveToEeprom(Data);
count = 0;
Data = 0;
}
if(DataIn == "1")
Data |= 1 << (7-count);
count++;
}
Gruß,
askazo
Lesezeichen