Motortreiber mit Atmega644p

truth

Neues Mitglied
12. Okt. 2012
2
0
0
Sprachen
Hallo erstmal!

Ich versuche gerade Befehle(Koordinatenositionen) von meinem PC zu einem
Motortreiber über meinem Mikrocontroller (der ATmega644p, der 2
USART-Port besitzt (USART0 und USART1) zu senden.

Das Protokoll soll folgendermaßen aussehen:
- Der PC schickt zunächst die Befehle über USART0 nacheinander an dem
Mikrocontroller. Jeder Befehl sieht so aus: \nx,y\r.
mit \n: Beginn des Befehls
x: Position auf der x-Achse
,: Trennung zwischen x und y
y: Position auf der y-Achse
\r: Ende des Befehls
- Der Mikrocontroller leitet die empfangenen Daten an dem Motortreiber
nacheinander über USART1 weiter. Dabei muss der Mikrocontroller auf ein
Feedback des Motortreibers für jede weitergeleiteten Data warten bevor
er der nächste Befehl schickt.
Dh, zwischen zwei Befehlen, muss der Motortreiber ein Feedback zum
Mikrocontroller liefert, um bescheid zu sagen, ob der empfangene Befehl
als gültiger oder ungültiger Befehl betrachten muss.

Beispiel: gesendetes Befehl --------------------------------> "#2A\r"
Feedback Motortreiber(Wenn Befehl gültig ist) ----> "2A\r"
Feedback Motortreiber(Wenn Befehl ungültig ist) --> "2A?\r"

Der Motortreiber ist ansprechbar, wenn die Befehle folgendermaße
aussehen:
"Beginn des Befehls, Nummer des Motortreibers, Befehl zu ausführen, Ende
des Befehls "

Beispiel mit: "#3p2\r"
#: beginn des Befehls
3: Nummer des Motortreibers
p2: Arbeitsmodus
\r: Ende des Befehls


Irgendwie funktioniert das nicht so recht und ich komme einfach nicht
weiter. Ich vermute dass es an dem Zusammenspiel zwischen USART0 und
USART1 liegt.
Es gibt wahrscheinlich Konflikt zwischen ISR(USART0_RX_vect) und
ISR(USART1_RX_vect).

Vielleicht kann mir jemand hier helfen.
Ich wäre sehr dankbar

Im Anhang liegt mein Code.
 

Anhänge

  • position_transmission.c
    9 KB · Aufrufe: 4

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)