Erstmal ein herzliches "Hallo" in die Runde.
Bin ja neu hier.

Also seit gestern habe ich nun auch mit der Microcontroller Programmierung angefangen. Als Sprache habe ich mir Basic ausgesucht, da ich dort schon einwenig Ahnung habe. Am liebsten wäre mir Pascal gewesen, da wir das auch in der Schule benutzen für anderes, aber BASIC hatten wir auch schon mal.

Als Board benutze ich das myAVR Board 2 USB. So nun zu meinem Anliegen.
Ich möchte so als Anfang eine LED nach Tastendruck für eine bestimmte Zeit zum leuchten bringen. Diese bestimmte Zeit möchte ich mittels eines Poti von 1s-60s einstellen können.

Es funktioniert fast. Mein Problem ist das das minimum komischerweise nicht 1Sekunde ist, sondern laut Stopuhr etwa 5Sekunden. Woran liegt das? Und kann man den Code vlt. noch optimieren?

Ich bitte um Milde. Bin noch Anfänger. [-o<

Grüße
Markus

Code:
 $regfile = "m8def.dat"                                   
 $crystal = 3686400                                        

 Config Portb.1 = Output                                   
 Led Alias Portb.1
 Config Pind.2 = Input                                      
 Taster Alias Pind.2
 Portd.2 = 1

 Config Timer1 = Timer , Prescale = 64                     
 On Timer1 Main                                           

 Config Adc = Single , Prescaler = Auto
 Start Adc

 Const Timervorgabe = 7936
 Dim W As Integer
 Dim Zeit As Integer
 Dim Zeitvorgabe As Integer
 Zeit = 1
 Enable Timer1
 Enable Interrupts

 Do
 If Taster = 0 Then
 If Getadc(0) < 17 Then
 W = 17
 Else
 W = Getadc(0)
 End If
 Zeitvorgabe = W / 17
 Led = 1
 Enable Timer1
 End If
 Loop

 Main:
 If Zeit < Zeitvorgabe Then
 Zeit = Zeit + 1
 Timer1 = Timervorgabe
 Else
 Led = 0
 Zeit = 0
 Timer1 = Timervorgabe
 Disable Timer1
 End If
 Return