Moin Jungs,

ich versuche grade mal eine einfache USART Verbindung zwischen meinem AT-Mega88 und Läppy hinzukriegen. Der Läppy hat nen echte RS232, also kein USB-> RS232 Wandler oder so drann.

Hier meine Routine zum senden:
Code:
int USART_TX(char *TX_B, unsigned int TX_B_L) {
  
  while (!(UCSR0A & (1<<UDRE0))) { } // Warten bis Senden möglich
  
    for(int i=0; TX_B_L > i; i++)
  
  UDR0 = TX_B[i];
  
    return 0;
}
Es soll solange gesendet werden bis TX_B_L erreicht ist.

Ausgeführt wird das ganze in der Main so:
Code:
char test[5] = "Hallo";
USART_TX (test, sizeof(test));
Ankommen tut genau garnichts, nada.

Initialisiert wird mit 19.200 8-N-1.

Es funktioniert wunderbar wenn ich in der main einfach ein Zeichen rüberschiebe:

Code:
while (!(UCSR0A & (1<<UDRE0))) { } // Warten bis Senden möglich
UDR0 = 'X';
Das ganze mal zum testen in nen Timer gepackt der mehrmals pro Sekunde ausgeführt wird und die X-chen rattern übern Bildschirm.

Also an der Init. kanns wohl kaum liegen!? Was läuft hier falsch?

Schönen Carfreitag, e-Ra