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
Patrick P. schrieb: > oder zublöd dafür... Definitiv! Oder zu faul um zu suchen. Such mal hier im Forum nach der Entprellroutine/Artikel ;-) Alles andere ist nur eine Variable setzen und dem Port zuweisen.
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
@Peter Z. & oldmax Danke für eure antworten , haben mir weiter geholfen ! MfG
Patrick P. schrieb: > Suche das in der Programmiersprache C. oldmax schrieb: > In Assembler ein kleines Beispiel: Lupenreines C war das nun nicht, aber wenn's hilft ;-)
Patrick P. schrieb: > Ich finde entprellen > ect. aber nicht sowas im netz oder zublöd dafür.... Es lohnt sich, in die Beispiele auch mal hinein zu sehen. Mein Entprellcode macht nämlich genau das mit KEY0. Beitrag "Universelle Tastenabfrage"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.