Forum: Mikrocontroller und Digitale Elektronik Bascom-Problem mit Sub-Routine


von Holger (Gast)


Lesenswert?

Hallo,
ich habe mit nachfolgendem "Programm" ein Problem, deshalb wende ich
mich an das Forum und hoffe
auf ein paar Tips.
Grundgedanke ist:
Mit entprelltem Taster (Pind.0) soll bis 3 gezählt und in die
entsprechende Sub-Routine verzweigt
werden. Ist der A-Wert größer als 3 geschieht ein Neuanfang, da ich A=0
setze. (System Ringzähler).
Bis hierher funktioniert das Programm wunschgemäß!
In den Sub's soll allerdings jeweils eine weitere Aktivität ausgelöst
werden.
Ich habe es als Beispiel unter den Sub's als Kommentar eingetragen.
Das funktioniert nicht! Mit  Tastendruck D.0 Sub aufrufen und mit
Taster D.1 soll die Unterroutine Strt ausgelöst werden.
und mit D.1 "bestätigen".
Mit anderen Worten, nur wenn die entsprechende Sub aufgerufen UND zur
Bestätigung Taster D.1
gedrückt wird wird aktiviert.
Danke und Gruß
Holger.

$regfile = "2313def.dat"
$crystal = 4000000
Dim A As Byte
Dim B As Byte
Config Portb = Output
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.5 = Output

Pind.0 = 1
Pind.1 = 1
Afg:
A = 0

Do
Debounce Pind.0 , 0 , Cnt , Sub
Debounce Pind.1 , 0 , Strt , Sub
Loop

Cnt:
A = A + 1
If A = 1 Then Gosub Sub1
If A = 2 Then Gosub Sub2
If A = 3 Then Gosub Sub3
If A = 3 Then Goto Afg
Return



Sub1:
Portb = &B00000001
'IF Pind.1 = 0 then gosub Strt  ' Ist Taste D.1 gedrückt, dann
springe zu "Strt"
Return

Sub2:
Portb = &B00000010
'IF Pind.1 = 0 then gosub Strt1  ' Ist Taste D.1 gedrückt, dann
springe zu "Strt1"
Return

Sub3:
Portb = &B00000100
'IF Pind.1 = 0 then gosub Strt2  ' Ist Taste D.1 gedrückt, dann
springe zu "Strt2"
Return

Strt:
Sound Portd.5 , 500 , 400
Return

von Bernd Schmidt (Gast)


Lesenswert?

Zum bestätigen ist das hier vieleicht besser:

Strt:
 Select case A
  case 1
    Sound Portd.5 , 500 , 400
  case 2
    Sound Portd.5 , 500 , 600
  case 3
    Sound Portd.5 , 500 , 800
  End Select
 PortB = 0
Return

von Holger (Gast)


Lesenswert?

Hallo Bernd,
einfach Spitze! Es klappt! Eigentlich hätte ich auch darauf kommen
müssen, aber naja...
Vielen Dank für die gute und schnelle Hilfe!!!
Jetzt komme ich weiter mit meinem Kurzzeitimer.
Gruß Holger

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.