Gast
#1848997
Moin, ich bin gerade dabei, meinen ATmega644 ausgiebig zu testen... :) Also, Folgendes: Ich habe am Port D Folgendes angeschlossen: D2: Taster D3: Taster D4: Taster D5: LED D6: LED Ich möchte, dass die LED an D7 mit konstanter Geschwindigkeit blinkt. (funktioniert wie gewünscht) Über die Tasten soll gewählt werden, wie schnell es blinkt: D2 - 4Hz, D3 - 2Hz, D4 - 1Hz. (funktioniert gar nicht) Die LED an D5 soll anzeigen, ob gerade ein Taster gedrückt ist. (funktioniert wunderbar) Folgenden C-Code habe ich auf den Mega geflasht:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
Übrigens: Ich habe auch schon IF-Abfragen der Form "if ((PIND & 4) == 4)
{freq = 250;}". Auch ohne Erfolg.
Wenn ich über der Zeile "PORTD ^= ..." in der ISR ein "freq = 100;"
hinzufüge, passiert auch nichts; immer wird genau 1s gewartet.
Wer weiß, wodran's liegen könnte?
Gruß,
euer LDer