Forum: Mikrocontroller und Digitale Elektronik Warten bis Procces Bearbeitet und setzte dann fort


von Fichte (Gast)


Lesenswert?

Hay Leute

Ich habe ein Problem ich habe 2 Atmel die über die UART zusammen
Komunitieren wobei der erste Atmel Pins Abfrägt und diese mit
printf"A"; den Buchstaben "A" an den zweiten Atmel sendet. Der
zweite Atmel führt nun ein Process aus wobei der erste warten soll bis
der zweite ein Signal zurück gibt und die Pin Abfrage dort Fortsetzt wo
er aufgehört hat.

Kann mir jemand helfen.

IC´s: 2x AT90S8535
Compiler: Codevision.


MFG: Fichte

von Benedikt (Gast)


Lesenswert?

Ich versteh den Sinn nicht ganz, hier nochmal kurz zusammengefasst, wic
ich das verstehe:
1 sendet "A" an 2
1 wartet bist Antwort von 2 zurückkommt.

Wo ist das Problem ?
Hinter "1 sendet" eine Schleife die auf die Antwort von 2 wartet.

von Ralf (Gast)


Lesenswert?

Hallo,

wo liegt denn genau dein Problem, Du hast doch eigentlich die Lösung
schon geschildert.
Wenn's um die Realisierung auf den einzelnen Controllern geht, dann
macht man sowas normalerweise über Zustandsmaschinen.
Z.B.:
Controller 1:
1. Zustand: Frage Ports ab und sende 'A' wenn Muster ok und schalte
in Zustand 2.
2. Zustand: Warte auf Antwort. Wenn Antwort erhalten dann gehe zuück in
Z. 1.

Controller 2:
1. Zustand: Warte auf 'A'. Schalte in zweiten Zustand wenn A
eingetroffen.
2. Zustand: Berechne Prozess, sende Antwort und schalte zurück in 1.
Zustand.

Man kann das z.B. über jew. eine Zustandsvariable machen, die jew. die
Werte 0 und 1 annehmen kann und diese dann in der Mainloop jeweils in
einer switch-case Anweisung abfragt und bei den Bedingungen die
Zustände ändert.

Hoffe ich konnte helfen...

Viele Grüße,

Ralf

www.ralf-hochhausen.de

von Ingo Henze (Gast)


Lesenswert?

Oder schickst den ersten uC nach dem Senden in den Idle-Mode. Da wartet
er dann so lange, bis der zweite uC sich über UART meldet. Geht aber
nur mit Empfangsinterrupt und falls sonst nicht noch andere Inerrupts
auf dem ersten uC auftreten können (die den uC ja auch "aufwecken"
würden).

Gruß
Ingo

von Fichte (Gast)


Lesenswert?

@ Benedikt

Ich weiss das ich die Lösung schon habe nur an der realisierung hängt
es. Da ich nicht der perfekte C Programmierer bin habe ich mit dem C
Code ein Problem und weiss nicht wie ich es schreiben soll.
Deswegen würde mir ein Beispiel als Gedächtnisstütze schon voll
reichen..


MFG: Fichte

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
Noch kein Account? Hier anmelden.