den Minus vergessen ?
RXD,TXD und Minus müssen gelegt werden, besteht keine gemeinsame Stromversorgung.
Gento
Ich habe folgendes Problem.
2 Atmega 128 sind über die Anschlüsse RXD und TXD verbunden.
Beide Atmegas sollen wechselseitig Daten übertragen mittels Com1.
Das funktioniert auch, aber wenn ich beide Atmegas gleichzeititg an einer Spannungsquelle einschalte. Ich möchte aber einen Atmega steckbar mit einem Anschlusskabel versehen. Wenn ich diesen dann einstecke läuft entweder die Sendestrecke oder die Empfangsstrecke nicht.
Nur selten funktionieren auf Anhieb beide Strecken. Müssen die Atmegas bei Verbindungsaufnahme erst miteinander synchronisiert werden? Oder was mache ich falsch. Komme nicht mehr weiter.
Kann mir jemand dabei helfen. Ein kleiner Tipp?
den Minus vergessen ?
RXD,TXD und Minus müssen gelegt werden, besteht keine gemeinsame Stromversorgung.
Gento
Den Minus habe ich natürlich verbunden.
Es sieht so aus als würde ein RXD-Eingang blockiert werden, denn der entsprechende Atmega führt keinen Interrupt aus.
Mein Programm arbeitet so, daß immer wenn URXC =1 ist die empfangenen Daten in mehrere Variablen abspeichert, um sie später abzuarbeiten.
Hallo,
kann jemand mir helfen, wie ich rn-minicontrol atmega168 den rn-motor mittels 3pol RS232 steuern kann ?
was muss ich da tun ? Um die Verbindungen zwischen der beiden herzustellen und einen Befehl von rn-minicontrol zu rn-motor zu schicken.
Danke
Tan Thai
@Heideltrudel
ggf. im Programm auf der RX-Seite in einer Schleife baud=xxx zuweisen. Das initialisiert die Schnittstelle neu - da die Ports auch für andere Zwecke verwendet werden können. (Alternativ in ASM neu initialisieren)
Alternativ: eine Soft-COM-Routine benutzten - die bleibt definitiv nicht hängen. Wenn Du noch RX mit einen INT verbindest, brauchst Du auch nicht auf Daten in einer Schleife warten. Siehe dazu mein Bascom Codeschnipsel:https://www.roboternetz.de/phpBB2/ze...ag.php?t=17444
Zu RN-Motor:
Hier hab ich ein Beispiel für die C-Control von der CD, es läßt sich aber leicht auch auf AVR / andere RN-Boards übertragen. Statt Put musst du in Bascom nur CHR benutzen.
Beispiel:
statt wie bei der C-Control
schreibt man in BascomCode:Print "#rmi" ; : Put 2 : Put 58
usw.Code:Print "#rmi" ; chr(2 ); chr(58)
Statt Pause musst du WAIT schreiben
$Baud=9600 am Anfang nicht vergessen
Code:'DEMO das aufzeigt 'wie einfach RN-Motor über RS232 'auch mit einer C-Control angesteuert werden kann 'Motorstrom festlegen Print "#rmi" ; : Put 2 : Put 58 pause 20 'beide Motoren ein Print "#rmo" ; : Put 2 pause 20 'beide motoren rechts Print "#rmd" ; : Put 2 : Put 0 pause 20 'geschwindigkeit Print "#rmg" ; : Put 2 : Put 25 pause 20 'endlos drehen Print "#rme" ; : Put 2 #hinundher pause 1000 'Linker motor nach links Print "#rmd" ; : Put 0 : Put 0 'rechter motor nach rechts Print "#rmd" ; : Put 1 : Put 1 pause 1000 'Linker motor nach rechts Print "#rmd" ; : Put 0 : Put 1 'rechter motor nach links 'Print "#rmd" ; : Put 1 : Put 0 GoTo hinundher
Hallo,
es hat funktioniert.
Es macht wirklich spass, wenn es funktioniert.(hihihihihi)
vielen Dank !
Tan Thai
Hallo tomas
Vielen Dank für deinen Tip. Ich habe das mit dem Baud=115600 in der Interrupt-Routine, als auch in der Hauptschleife verwendet. Leider ohne nennenswerte Veränderung. Das hat mich aber auf eine weitere Idee gebracht. Atmega Nr1 fragt ständig Portzustände ab und gibt die Zustände über TXD raus zu Atmega Nr2. Nach dem Senden der Zustände von
8 Pins ist erst einmal eine Pause von ca. 4 Sekunden. Danach wiederholt Atmega Nr.1 seine Prozedur.
Ich habe herausgefunden, dass immer wenn ich Atmega Nr2 in der Pause resete dann funktioniert die Datenübertragung immer.
D.h. Er synchronisiert sofort richtig.
Gibt es eine Funktion, mit der ich das Öffnen des RXD-Kanals erst in dieser Pause einsetzen lassen kann ?
Hmm, klingt zwar hart, aber ich tippe auf Software Probleme ....
Ich selbst habe mit diversen ATmega's ein Projekt realisiert, indem auch die µC <-> µC Kommunikation eine große Rolle spielte ... das einzieg Problem, das ich dabei hatte war eine Syncronisation RX/TX zu RS 422 (glaub).
Hallo Hanni,
kannst du diese Synchronisation mal ein bischen näher beschreiben ?
Vielleicht hilft es mir mein Problem zu lösen.
Lesezeichen