Taster als Schalter Programmieren

OP #3102906
Lesenswert?
• ▲
▼
Hallo Community,

Ich finde nichts im Netz wo man einen Taster als Schalter programmieren 
kann. Beim ersten ersten drücken soll er Gnd durchschalten und den 
Zustand solange halten bis ich ihn erneut betätige. Ich finde entprellen 
ect. aber nicht sowas im netz oder zublöd dafür....
Suche das in der Programmiersprache C.

mFg Korlask
Gast #3102918
Lesenswert?
• ▲
▼
Hi
Schön, das über "faule Anfänger" geschimpft wird. Schade, um die Zeit, 
die dafür benötigt wird.
Entprellen ist die eine Sache, das was du brauchst ist eine 
Flankenauswertung. Ich weiß nicht, in welcher Sprache du unterwegs bist, 
aber ich denke, dazu gibt's in jeder Rubrik etwas.
Du merkst dir einfach den letzten gültigen Eingang und machst eine Ex-Or 
auf den neuen Status. Ist der unterschiedlich, dann bekommst du eine "1" 
als Ergebnis. Vergleichst du diese "1" mit dem alten Zustand, dann ist 
der Wechsel von "1" nach "0" erfolgt, wenn du den neuen Status nimmst, 
dann ist es ein Wechsel von "0" nach "1",
In Assembler ein kleines Beispiel:
1
LDS R16, Old_Status    ; alter Status
2
LDS R17, New_Status    ; aktueller Status
3
EOR R16, R17           ; ex-or Ergebnis "1" wenn unterschied
4
BREQ weiter            ; wenn 0, dann Old_status = new_Staus
5
AND R16, R17           ; 1=Änderung, da neuer Status 1 Änderung 0-> 1
6
STS Old_Status, R17    ; Flankenbit ablegen
7
STS In_To_1, R16       ; new_Status nach Old_Status
8
weiter:
Nun gilt es, im Programm dieses Flankenbit abzufragen, zu bearbeiten und 
zu löschen. Solange der Taster gedückt bleibt, ändert sich der Status ja 
nicht und ein neues Flankenbit gibts erst beim erneuten betätigen.
Übrigends, wenn du deine Eingänge nach GND schaltest, dann ist es 
einfacher, mit einem COM-Befehl (Assembler) die gelesenen Eingänge zu 
drehen. So wird aus einer logischen "0" eine "1" und es ist leichter im 
Kopf zu behalten "Taster gedrückt = 1"
Gruß oldmax

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.