Hallo, hat jemand schon mal 2 oder mehr AVRs an einem COM-Port (RS-232) geschaltet? PC-COM -> 1.ATMEGA 8 -> 2.ATMEGA 8 -> PC-COM MAX-232 für die Pegelanpassung zwischen PC-COM und AVRs Beide Atmels haben eine kleine Steuersoftware drin. Jeder Atmel hat einen andere kleinen Befehlssatz mit einer ganz kleinen Hilfe. Jeder Befehl fängt mit '#' an... In der Software der beiden wird auf '#' geprüft ansonsten werden die Daten von dem Serial In zum Serial Out geleitet. Das Problem was ich habe ist, wenn ich die hilfe im ersten Atmel aufrufe und er gibt diese aus, diese geht zum 2.Atmel, da im Hilfetext kein Befehl mit '#' steckt wird dieses weiter zurück zum Terminal(PC) gegeben. Nur im 2. Atmel verhaspelt er sich. Die Serialbuffer sind IN und OUT bei beiden Atmels auf 254 Byte, der Hilfetext ist kleiner inklusiv $0A und $0D (also 230 Bytes)... Ich verwende Bascom AVR und arbeite mit der Hardware UART in den AVR's. Kann das sein, wenn ein AVR über Daten sendet, probleme hat gleichzeitig Daten zu empfangen ? -- Mathias (Rodiboki)
> Kann das sein, wenn ein AVR über Daten sendet, probleme hat gleichzeitig > Daten zu empfangen ? Der AVR nicht. Möglicherweise aber Bascom.
Andreas Kaiser wrote: >> Kann das sein, wenn ein AVR über Daten sendet, probleme hat gleichzeitig >> Daten zu empfangen ? > > Der AVR nicht. Möglicherweise aber Bascom. Da frag ich mich doch gleich mal warum Bascom, das getrennt auf zwei Controllern läuft, damit Probleme haben soll wenns die 2 Hardware UARTs nicht haben...
Bernd T. wrote: > Andreas Kaiser wrote: >>> Kann das sein, wenn ein AVR über Daten sendet, probleme hat gleichzeitig >>> Daten zu empfangen ? >> >> Der AVR nicht. Möglicherweise aber Bascom. > > Da frag ich mich doch gleich mal warum Bascom, das getrennt auf zwei > Controllern läuft, damit Probleme haben soll wenns die 2 Hardware UARTs > nicht haben... !?!?! Hä Bascom selber läuft nicht auf den Controllern... ... ?!?!?! Vielleicht habe ich einiges nicht genau erklärt... Beide Atmels beinhalten ein Programm, was ich mit Bascom geschrieben/programmiert habe. Am Atmel kann ich über den Hardware UART ein Terminal (PC) anschließen (mit MAX232 dazwischen u.s.w.). Das Programm von mir im Atmel hat einen kleinen Befehlssatz, weil ich damit was steuern und abfragen möchte. Mit einem Befehl kann ich eine kleine Hilfe aufrufen, um zu sehen welche Befehle mein Programm im Atmel versteht. Die Programme in den Atmels haben einen unterschiedlichen Befehlssatz, damit klar ist welcher angesprochen wird. Also habe ich beide Atmels in Reihe geschaltet: PC (TX) - > 1. Atmel Chip Hardware UART RX 1. Atmel Chip Hardware UART TX -> 2. Atmel Chip Hardware UART RX 2. Atmel Chip Hardware UART TX -> PC (RX) also eine Art Loop Wenn mein Programm im Atmel den Befehl nicht kennt bzw. Text kommt, so soll er den Befehl/Text über den UART zum nächsten Atmel schicken. Das Problem was ich habe ist, wenn ich mit meinem Befehl die Hilfe vom 1. Atmel aufrufen möchte, muss der zweite diesen Text nur weitergeben, da er darin kein Befehle erkennt. Dieser Hilfetext ist nur ca 230 Byte lang(inklusive LF und CR in jeder Zeile), also kürzer, als die Buffers der Hardware UART aufnehmen können. Trotzdem verhaspelt sich der 2. Atmel beim weitergeben des Textes/Daten. Bei Befehlen, die nur mit wenigen Bytes an Informationen antworten ist alles klar. Da ich im Programm immer auf CR warte und dann weitergebe, habe ich den verdacht, daß in dem Moment, wo der Print-Befehl im 2. Atmel ausgeführt wird die Daten zum PC zu senden keine Daten vom 1. Atmel annehmen kann, bzw. umgekehrt, das beim Empfang von Daten die Absendung gestört wird, wegen Interrupt. -- Mathias (Rodiboki)
> da er darin kein Befehle erkennt. Dieser Hilfetext ist nur ca 230 Byte > lang(inklusive LF und CR in jeder Zeile), also kürzer, als die Buffers > der Hardware UART aufnehmen können. Die UARTS haben wohl kaum 230 Byte Hardwarepuffer. Das Problem liegt in deinem Programm und kannst den Fehler hier beliebig oft und beliebig lang beschreiben, ohne das Programm wird ihn keiner (*) finden. (*) Absolute Überchecker ausgenommen, aber arbeiten die mit Bascom? (SCNR)
'#' hihi das ist keine echte hartware uart. Aber bascom fragen sollteste hier lieber nicht stellen,dann wirste hier gesteinigt und verbrannt.Dafür gibt es andere foren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.