BASCOM Taster Betätigungslänge erkennen

Gast #996882
Hallo!

Ich hab einen Taster an einen ATmega8 angeschlossen. Jetzt sollte 
folgende Funktion realisiert werden:

Wenn der Taster kurz gedrückt wird, dann geht PortB.1 auf high.
Wenn der Taster länger als 2 Sek. gedrückt wird, dann geht PortB.1 auf 
low.

Ich habe es so versucht:
---
...
Config Timer1= Timer , Prescale = 256
On Timer1 timerirq
Enable Timer1
Timer1 = 22336
...
Dim sekunden as byte

Main:
Do
If Taster = 0 and PortB.1 = 0 Then
  waitms 25
  bitwait Taster , Set
  PortB.1 = 1
End If

If Taster = 0 and PortB.1 = 1 Then
  waitms 25
  sekunden = 0
  If Sekunden < 2 Then
    PortB.1 = 1
  Elseif Sekunden >=2 Then
    PortB.1 = 0
  End If
End If
...
loop

Timerirq:
  Timer1 = 22336
  incr Sekunden
Return
---

Leider funktioniert das so nicht. Der Pin wird zwar angeschalten aber 
das mit dem Ausschalten nach 2 Sek. funktioniert nicht.

Vielleicht hat jemand noch eine andere Idee.

Danke schonmal.
Max
Gast
Hallo!

Die ist ja drinnen mit de waitms 25 und Bitwait. Das Programm ansich 
funktioniert so, nur das Erkennen ob der Taster weniger 2 Sek. oder 
länger als 2 Sek. gedrückt wurde funktioniert nicht.

Max

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.