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
Lesezeichen