www.mikrocontroller.net

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


Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.