Che Guevara
22.05.2008, 13:19
servus leude,
ich habe ja das rn-control board, mit einem atmega32, welchen ich mit bascom programmiere.....
jetzt wollte ich mir mal ein programm schreiben, bei dem ich 5 leds (die, die schon aufm board sind) steuern kann:
ich wollte dafür die 5 on-board taster benutzen (vorerst nur 2)....
in dem programm gibt es den wert i .... dieser ist nie <1 und > 5... i best. die anzahl der zu leuchtenden leds. wenn t1 gedrückt wird, soll i = i - 1 sein.... wenn t2 gedrückt wird, soll i = i + 1 sein..... also entweder 1 rauf oder runter...
wenn i = 1 ist, soll die erste led leuchten, bei i = 2 die 2. led , usw.
habe hier auch schon ein programm, allerdings funktioniert das nicht.
die meisten leds flimmern immer so komisch. zwar leuchtet eine led wenn ich einen taster drücke, allerdings nur solange der taster gedrückt ist......
ich möchte aber, dass sie auch nach dem loslassen des taster noch leuchtet?!!!
außerdem wollte ich später noch eine funktion einbauen, bei der der wert i nach einem tastendruck (im eeprom??) gespeichert wird, damit nach reset der schaltung i wider vorhanden ist...... allerdings habe ich keine ahnung, wie ich das realisieren soll???
hier nun mein code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto
Config Portc = Output
L1 Alias Portc.0
L2 Alias Portc.1
L3 Alias Portc.2
L4 Alias Portc.3
L5 Alias Portc.4
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Dim I As Word
Dim X As Word
X = 1
Do
Start Adc
X = Getadc(7)
If X < 130 Then
I = I - 1
Waitms 20
If I = 1 Then
L1 = 0
L2 = 1
L3 = 1
L4 = 1
L5 = 1
Elseif I = 2 Then
L1 = 1
L2 = 0
L3 = 1
L4 = 1
L5 = 1
Elseif I = 3 Then
L1 = 1
L2 = 1
L3 = 0
L4 = 1
L5 = 1
Elseif I = 4 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 0
L5 = 1
Elseif I = 5 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 1
L5 = 0
Elseif I > 5 Then
I = 1
End If
Elseif X < 220 Then
I = I + 1
Waitms 20
If I = 1 Then
L1 = 0
L2 = 1
L3 = 1
L4 = 1
L5 = 1
Elseif I = 2 Then
L1 = 1
L2 = 0
L3 = 1
L4 = 1
L5 = 1
Elseif I = 3 Then
L1 = 1
L2 = 1
L3 = 0
L4 = 1
L5 = 1
Elseif I = 4 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 0
L5 = 1
Elseif I = 5 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 1
L5 = 0
Elseif I > 5 Then
I = 1
End If
End If
Loop
End
Code Tags verwenden, sieht übersichtlicher aus ! (PicNick)
fragen über fragen, ich hoffe, ihr könnt mir (wenigstens teilweise) helfen!
mfg
chris
ich habe ja das rn-control board, mit einem atmega32, welchen ich mit bascom programmiere.....
jetzt wollte ich mir mal ein programm schreiben, bei dem ich 5 leds (die, die schon aufm board sind) steuern kann:
ich wollte dafür die 5 on-board taster benutzen (vorerst nur 2)....
in dem programm gibt es den wert i .... dieser ist nie <1 und > 5... i best. die anzahl der zu leuchtenden leds. wenn t1 gedrückt wird, soll i = i - 1 sein.... wenn t2 gedrückt wird, soll i = i + 1 sein..... also entweder 1 rauf oder runter...
wenn i = 1 ist, soll die erste led leuchten, bei i = 2 die 2. led , usw.
habe hier auch schon ein programm, allerdings funktioniert das nicht.
die meisten leds flimmern immer so komisch. zwar leuchtet eine led wenn ich einen taster drücke, allerdings nur solange der taster gedrückt ist......
ich möchte aber, dass sie auch nach dem loslassen des taster noch leuchtet?!!!
außerdem wollte ich später noch eine funktion einbauen, bei der der wert i nach einem tastendruck (im eeprom??) gespeichert wird, damit nach reset der schaltung i wider vorhanden ist...... allerdings habe ich keine ahnung, wie ich das realisieren soll???
hier nun mein code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto
Config Portc = Output
L1 Alias Portc.0
L2 Alias Portc.1
L3 Alias Portc.2
L4 Alias Portc.3
L5 Alias Portc.4
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Dim I As Word
Dim X As Word
X = 1
Do
Start Adc
X = Getadc(7)
If X < 130 Then
I = I - 1
Waitms 20
If I = 1 Then
L1 = 0
L2 = 1
L3 = 1
L4 = 1
L5 = 1
Elseif I = 2 Then
L1 = 1
L2 = 0
L3 = 1
L4 = 1
L5 = 1
Elseif I = 3 Then
L1 = 1
L2 = 1
L3 = 0
L4 = 1
L5 = 1
Elseif I = 4 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 0
L5 = 1
Elseif I = 5 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 1
L5 = 0
Elseif I > 5 Then
I = 1
End If
Elseif X < 220 Then
I = I + 1
Waitms 20
If I = 1 Then
L1 = 0
L2 = 1
L3 = 1
L4 = 1
L5 = 1
Elseif I = 2 Then
L1 = 1
L2 = 0
L3 = 1
L4 = 1
L5 = 1
Elseif I = 3 Then
L1 = 1
L2 = 1
L3 = 0
L4 = 1
L5 = 1
Elseif I = 4 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 0
L5 = 1
Elseif I = 5 Then
L1 = 1
L2 = 1
L3 = 1
L4 = 1
L5 = 0
Elseif I > 5 Then
I = 1
End If
End If
Loop
End
Code Tags verwenden, sieht übersichtlicher aus ! (PicNick)
fragen über fragen, ich hoffe, ihr könnt mir (wenigstens teilweise) helfen!
mfg
chris