Gast
#179232
Das ich meine UART Schnittstelle nicht zum laufen bekomme ist ja wohl
inzwischen der Runninggag dieses Forums.
Auf der Suche nach dem Fehler wollte ich jetzt ein PC5 auf High setzen,
wenn die Abfrage der Daten beginnt und zurücksetzen, wenn die
Datenabfrage gelaufen ist.
countit=1;
while (countit < 16)
{
if (checkbit(UCSR1A,RXC1))
{
data = UDR1;
text[countit] = data;
setbit(PORTC,PC5);
asm("NOP");asm("NOP");asm("NOP");
switch(countit)
{
case 1 : stunde = ((data) * 10); break;
case 2 : stunde = (stunde + (data)); break;
case 3 : minute = ((data) * 10); break;
case 4 : minute = (minute + (data)); break;
case 5 : sekunde = ((data) * 10); break;
case 6 : sekunde = (sekunde + (data)); break;
case 8 : tag = ((data) * 10); break;
case 9 : tag = (tag + (data)); break;
case 10: monat = ((data) * 10); break;
case 11: monat = (monat + (data)); break;
case 12: jahr = ((data) * 10); break;
case 13: jahr = (jahr + (data)); break;
case 15: status = (data ); break;
}
clearbit(PORTC,PC5);
asm("NOP");asm("NOP");asm("NOP");
setbit(PORTD,PORTD3);
countit++;
}
}
Die Datenübertragung wird ausgelöst und das Programm verläßt auch die
Schleife woraus ich schließe, dass mindestens 15 Byte erkannt wurden.
Aber es gibt kein Signal an PC5 ?!? Wenn ich "clearbit(PORTC,PC5);"
auskommentiere wird das Bit gesetzt.
Was ist daran falsch?
Warum bekomme ich kein Impuls auf PC5?