T
Thomas Mundhenke
Guest
Hallo NG,
ich habe folgendes Problem:
in meiner Haussteuerung setze ich ATMega8 oder 16 (gleiches Problem)
ein, die als Sensoren oder Aktoren über einen RS485-Full-Duplex-Bus
miteinander kommunizieren. Damit das Senden funktioniert, werden die
RS485-SendeTreiber vor den Senden ein- und danach wieder ausgeschaltet,
per Port-PIN ! Das Problem besteht darin, dass ich zum Ausschalten des
Senders den Zeitpunkt wissen muss, nachdem das letzte Zeichen den
Sendepuffer wirklich physisch verlassen hat. Gemäß meinem
Speicherscope werden aber sowohl TX-Empty wie auch Tx complete
Interrupt ausgelöst, bevor das Zeichen wirklich den Buffer verlassen
hat. Damit wird der Sender zu früh disabled und das letzte gesendete
Zeichen ruiniert.
Mach' ich da was falsch, habe ich was übersehen ?!?
Ich bin dankbar für jede brauchbare Idee, denn ansonsten funktionieren
meine Ringbufferroutinen wirklich astrein !
Gruß Thomas
ich habe folgendes Problem:
in meiner Haussteuerung setze ich ATMega8 oder 16 (gleiches Problem)
ein, die als Sensoren oder Aktoren über einen RS485-Full-Duplex-Bus
miteinander kommunizieren. Damit das Senden funktioniert, werden die
RS485-SendeTreiber vor den Senden ein- und danach wieder ausgeschaltet,
per Port-PIN ! Das Problem besteht darin, dass ich zum Ausschalten des
Senders den Zeitpunkt wissen muss, nachdem das letzte Zeichen den
Sendepuffer wirklich physisch verlassen hat. Gemäß meinem
Speicherscope werden aber sowohl TX-Empty wie auch Tx complete
Interrupt ausgelöst, bevor das Zeichen wirklich den Buffer verlassen
hat. Damit wird der Sender zu früh disabled und das letzte gesendete
Zeichen ruiniert.
Mach' ich da was falsch, habe ich was übersehen ?!?
Ich bin dankbar für jede brauchbare Idee, denn ansonsten funktionieren
meine Ringbufferroutinen wirklich astrein !
Gruß Thomas