-
-
Erfahrener Benutzer
Roboter Genie
so hätt ichs auch gemacht, das ist auch in assembler leicht machbar. nur musst du die tasten dann per hardware entprellen, oder erst entprellen und dann die zeitnahme starten. sonst könnte es passieren, dass der CCP das prellen des tasters als zweites ereignis versteht und aufhört zu zählen, dann hättest du einen tastendruck von wenigen millisekunden.
was auch noch geht, und ohne CCP modul: du löst einen interrupt aus oder prüfst in einer schleife, wenn du die taste drückst, machst eine entprellung und prüfst in regelmäßigen abständen, ob die taste noch gedrückt ist. wenn es um einige sekunden geht, brauchst du es nicht auf 1ms genau, deswegen kannst du einfach deinen Prozessortakt nehmen, mit der Anzahl der Befehle berechnen wie lange du brauchst, bist du erneut abfragst, und dann einfach die abfragen zählen.
kurz: schleife basteln die den zustand abfragt, schleife so auslegen, dass alle mh 100ms oder wie es eben passt wieder nachgesehen wird. Bei gedrückter taste zählst du eine Variable um eins hoch. und lässt das ding weiterlaufen, ist im nächsten durchgang die taste immernoch gedrückt, weiter hochzählen. ist die taste dann irgendwann nichtmehr gedrückt, kannst du aus dem zählerstand ablesen, wie lang die taste für gedrückt war, eben zählerstand x 100ms.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen