Gast
#72812
Hallo zusammen! Ich verwende für ein RS485 Netzwerk den halbduplexen Treiber MAX485. Um ihn senden zu lassen, muss ich die Enalbe Leitung ja auf high ziehen. Anschließend muss sie wieder auf low abfallen, damit er wieder empfangen kann. Ich arbeite mit Codevision - ATMega 8. Setze ich mit sofort nach putchar die Leitung auf low, so ist das zu früh (klar - die Daten sind noch im Sende buffer - nicht komplett gesendet). Dazu müsste ich dann das TXC Bit auswerten, also warten, bis TXC = 1 ist. Hier mein Programmschnippsel: putchar(outp); while ((UCSRA << 1) < 128) {} PORTD.4 = 0; // Auf Empfangen umschalten! Nach einem Reset des Controllers funktioniert dies auch - allerdings nur einmal. Danach durchläuft der Mega8 die Schleife sofort (ohne zu warten) und setzt natürlich die Enable leitung zu früh auf low. D.H. theoretisch muss TXC auf 1 sein - aber warum? Wo liegt mein Denkfehler? Grüße Flite