Forum: Mikrocontroller und Digitale Elektronik Zustandwechsel GPIO Pin


von paule (Gast)


Lesenswert?

Hallo,

ich habe hier 4 Module die untereinander mit einem eigenen Protokoll 
kommunizieren. In einem Task wird abgefragt ob Daten zum Senden 
verfügbar sind und dann dementsprechend gesendet.

Jetzt möchte ich gerne eine Zustandswechselabfrage machen. Und zwar 
soll, wenn der Schalter von 1 auf 0 gesetzt wird eine 0 gesendet werden, 
wenn der Schalter von 0 auf 1 gesetzt wird eine 1.

Die Frage dabei ist, wie ich das 0 auf 1 bzw. 1 auf 0 schalten 
programmiere und abfrage. Wenn ich den Zustand des Pins einfach nur 
Abfrage, dann funktioniert das ganze nicht, weil dann würde ja immer 
beim Zustand 0 oder beim Zustand 1, auch wenn kein Wechsel stattgefunden 
hat etwas gesendet. Es soll aber nur etwas gesendet werden wenn ein 
Zustandswechsel sattgefunden hat. Der Task zur Datenabfrage wird 
periodisch aufgerufen.

Es soll mit den 4 Modulen eine Art Treppenhausschaltung realisiert 
werden um zu demonstrieren, das die Kommunikation funktioniert.

Vielen Dank
Gruß

paule

von Stefan P. (form)


Lesenswert?

while(1)
{
  if (pin == 0 && pin_alt == 1)
  {
    send(0)
    pin_alt = 0;
  }

  if (pin == 1 && pin_alt == 0)
  {
    send(1)
    pin_alt = 1;
  }
}

von paule (Gast)


Lesenswert?

Zur Initialisierung setze ich dann:

pin_alt = 0

und der Zustand des Schalter muss auch = 0 sein, richtig?

Gruß
paule

von ich (Gast)


Lesenswert?

wenn nur der wechsel interesant ist dann setzt du zur initialisierung

pin_alt = pin

von paule (Gast)


Lesenswert?

Super vielen Dank, ich stand da irgendwie auf dem Schlauch.
Aber jetzt weiss ich wie ich weiter vorgehen muss.

Gruß
paule

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.