Guten Abend Möchte eine mit einem Poti einstellbare An-/ Ab- Verzögerung realisieren. Wird die Taste (s. Schaltbild) gedrückt, dann soll nach einer am Poti einstellbaren Zeit von 0 - 255 sec. die LED leuchten und nach dem Loslassen der Taste nach derselben Zeit wieder erlöschen. Beim Compilieren wurde kein Fehler gemeldet. Funktioniert trotzdem nicht. Könnte Ihr mal bitte drüberschauen. Gruß Beginy Programm: $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 8 $swstack = 2 $framesize = 5 ' Variablen Dim Poti As Word 'ADC definieren Config Adc = Single , Prescaler = Auto Start Adc Config Portb.3 = Output Led Alias Portb.3 Config Pinb.2 = Input Taster Alias Portb.2 Portb.2 = 1 ' Hauptschleife Do Poti = Getadc(2) 'Wert von ADC1 wird in Variable Poti gespeichert , Eingang: PB 4 'An-Verz If Taster = 0 Then Wait Poti Led = 1 End If 'Ab-Verz. If Taster = 1 Then Wait Poti Led = 0 End If Loop End
> Config Adc = Single , Prescaler = Auto > Start Adc kann zwar kein BASCOM aber wahrscheinlich wandelt der ADC nur einmal Otto
Ausserdem musst Du Dir den Zustand merken: 'An-Verz If Taster = 0 AND Flag = 1 Then Wait Poti Led = 1 Flag = 0 End If 'Ab-Verz. If Taster = 1 AND Flag = 0 Then Wait Poti Led = 0 Flag = 1 End If
Hi Hab von AVR's keinen Plan, verstehe das Programm aber so, daß in der Do-Loop-Schleife geprüft wird, ob der Taster gedrückt ist. Ist Taster gedrückt -> warte, LED aus (egal, was in der Wartezeit mit dem Taster passiert. Wenn kein Taster gedrückt ist -> LED an, warte, LED aus (auch egal, was mit dem Taster passiert). Denke, Du brauchst ungefähr folgenden Ablauf funktion=0, Taster nicht gedrückt, LED AUS funktion=1, LED AN, Zeit gestartet funktion=2, Taster gedrückt, Zeit abgelaufen, LED AUS Beim Lösen des Tasters wärend der Leuchtdauer wird die Leuchtzeit neu gestartet.
1 | funktion=0 |
2 | main: |
3 | if Taster=1 then |
4 | if funktion=0 then |
5 | funktion=1 |
6 | wartezeit=Poti-Wert |
7 | LED AN |
8 | endif |
9 | endif |
10 | |
11 | if Taster=0 then |
12 | if funktion=2 then |
13 | funktion=0 |
14 | elseif funktion=1 then |
15 | funktion=2 |
16 | wartezeit=Poti-Wert |
17 | endif |
18 | endif |
19 | |
20 | if wartezeit>0 then |
21 | wartezeit-- |
22 | elseif funktion!=0 then |
23 | LED AUS |
24 | funktion=2 |
25 | endif |
26 | |
27 | goto main |
Dadurch hast Du allerdings keine genaue Leuchtdauer, da die Schleife, je nach Befehlsanzahl, unterschiedliche Laufzeit haben dürfte. MfG
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.