Hallo
Ich beschäftige mich seit ein paar Tagen mit µControllern und hatte auch noch ein paar Attiny2313 zum Spielen rumliegen.
Vorweg:
Das Thema Microcontroller ist für Anfänger wirklich nicht sehr leicht nachvollziehbar, trotz diverser Tutorial-Versuchen hier im Board oder bei mikrokontroller.net und an vielen Stellen wo man glaubt einen Einstieg gefunden zu haben, endet es leider in einem Codeschnipsel und man ist verwirrter als vorher. Allein die drei Programmiersprachen tuen ihr übriges...
Zum Problem:
Ich habe an einen Attiny2313 an Port D2 ( ist der als Eingang überhaupt geeignet?) einen Taster über einen 10K Widerstand an VCC und an GND angeschlossen und an den Ports B1,2,3 jeweils eine LED über Vorwiderstand an VCC.
Ich möchte:
Mit dem Taster Led1 anschalten, wenn die Tastendrucklänge < 100 ist und diese sollte angeschaltet bleiben, bis zum nächsten Tastendruck (egal ob kurz oder lang)
Ist der Tastendruck > 100 sollen Led1 und Led3 eingeschaltet werden und ebenfalls eingeschaltet bleiben, bis zum nächsten Tastendruck.
Tja ich habe bislang ausprobiert:
Schaltet die LED's eigenlich so, wie ich möchte, nur bleiben diese nicht eingeschaltet...Code:$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input 'Taster Eingang Config Portb.1 = Output 'Led1 aus Config Portb.2 = Output 'Led2 aus Config Portb.3 = Output 'Led3 aus Taster Alias Pind.2 'Taster def. Led1 Alias Portb.1 'Led 1 def. Led2 Alias Portb.2 'Led 2 def. Led3 Alias Portb.3 'Led 3 def. Led1 = 1 Led2 = 1 Led3 = 1 Declare Sub Stelle1 'Status1 Declare Sub Stelle2 'Status2 Debounce Taster , 0 , Stelle1 , Sub Do Stelle1: 'Hauptschleife If Taster = 0 Then Led1 = 0 Else Led1 = 1 If Taster = 1 Then Return Else Gosub Stelle2 Stelle2: Waitms 80 If Taster = 0 And Led1 = 0 Then Led3 = 0 Else Led3 = 1 Loop
Mein neuer Ansatz, klappt irgendwie noch gar nicht
Ich hoffe, mir kann jemand von Euch Experten dabei behilflich sein [-o<Code:$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input 'Taster Eingang Config Portb.1 = Output 'Led1 aus Config Portb.2 = Output 'Led2 aus Config Portb.3 = Output 'Led3 aus Taster Alias Pind.2 'Taster def. Led1 Alias Portb.1 'Led 1 def. Led2 Alias Portb.2 'Led 2 def. Led3 Alias Portb.3 'Led 3 def. Led1 = 1 Led2 = 1 Led3 = 1 Dim Tastendrucklaenge As Word Do Pulsein Tastendrucklaenge , Pind , 2 , 0 If Tastendrucklaenge > 20 And Tastendrucklaenge < 100 Then Toggle Led1 If Tastendrucklaenge > 150 Then Led3 = 0 Else Led3 = 1 Loop







Zitieren


Lesezeichen