hab da ein Problem mit der seriellen Ausgabe von Zeichen.
Ich habe die Schaltung wie im Anhang und messe dort am MAX485 auf dem Bus A und Bus B.
Die Software, s. Anhang, sendet 1000mal das Zeichen "d".
In der markierten Zeile ist eine Wartefunktion. Wird hier 20ms gewartet, werden die Zeichen vom Atmega128 auch korrekt auf den Bus-Leitungen übertragen. Setze ich die Wartezeit auf 2ms herab, so werden nur noch teilweise die Zeichen übertragen (von den 1000 Stück max. 150).
Kurz zum Programmablauf:
-Ich setze den 485-Bus auf senden
-Warte 0,1ms (bis der Port geschaltet ist)
-Sende das Zeichen "d"
-Warte, bis das Interrupt sagt, der Sendepuffer ist leer
-Setzte den 485-Bus auf Empfangen
-Warte jetzt die o.g. Zeit (steht der weitere Programmablauf hinterher drin).
Hat jemand eine Idee, warum da nicht die 1000 Zeichen übertragen werden?
Lesezeichen