Guten Nachmittag zusammen,
ich möchte gerne meinen Atmega 16 programieren. Und zwar das er nach dem
drücken einer Taste (bzw. Taster) die erste LED für 2 Sek., sie
abschaltet und danach die zweite LED für 5 Sek. leuchten lässt und diese
dann auch abschaltet. Hab schon viel gegooglet, doch zu einem richtigen
ergebnis kam ich bis jetzt noch nicht. Möchte das mit einem Timer
realisieren, jedoch hab ich keinerlei ahnung von der Programierung bzw.
der Funktionsweise eines Timers. Hier mein bis jetzt zusammen
gebastelter Quellcode:
1.
$regfile = "m16def.dat"
2.
3.
4.
5.
'$crystal = 8000000
6.
$baud = 38400
7.
8.
Ddrb = &B1111_0000
9.
10.
Ddrd = &B0000_0000
11.
12.
13.
14.
Portb.4 = 0
15.
Portb.5 = 0
16.
Portb.6 = 0
17.
Portb.7 = 0
18.
Portd = &B1111_1111
19.
20.
21.
Dim LEDZeit1 As Word
22.
Dim LEDZeit2 As Word
23.
24.
25.
LED1 Alias Portb.4
26.
LED2 Alias Portb.5
27.
28.
29.
'TASTER1 an PD2
30.
Taster1 Alias Pind.2
31.
Config Taster1 = Input
32.
33.
'TASTER2 an PD3
34.
Taster2 Alias Pind.3
35.
Config Taster2 = Input
36.
37.
38.
39.
Config Timer1 = Timer , Prescale = 256
40.
On Timer1 Zeit
41.
42.
Enable Timer1
43.
Load Timer1 , 34285
44.
45.
46.
Enable Interrupts
47.
48.
LEDZeit1 = 0
49.
LEDZeit2 = 0
50.
51.
52.
Do
53.
Debounce Taster1 , 0 , On_taster1 , Sub
54.
Debounce Taster2 , 0 , On_taster2 , Sub
55.
Loop
56.
57.
'End
58.
59.
Zeit:
60.
61.
On_taster1:
62.
63.
Incr LEDZeit1
64.
If LEDZeit1 => 1 Then LED1 = 1 Else LED1 = 0
65.
If LEDZeit1 = 9 Then Reset LEDZeit1
66.
67.
Return
68.
69.
On_taster2:
70.
Incr LEDZeit2
71.
If LEDZeit2 => 1 Then LED2 = 1 Else LED2 = 0
72.
If LEDZeit2 = 9 Then Reset LEDZeit2
73.
74.
Return
75.
76.
End
Weiter weiß ich nicht....das ding macht einfach nicht was ich will. Wäre
nett von euch wenn ihr mir weiterhelfen könnten. Habe nicht wirklich
Ahnung vom Programieren, also bitte nicht so viele Fachausdrücke
Danke im Vorraus
Gruß Eli
[ Diese Nachricht wurde geändert von: Meenzer am 17 Sep 2009 16:24 ]