Gast
#5408361
Hallo, ich zweifel grade irgendwie an meinem Verstand. Ich habe einen ATMEGA324PA-AU und möchte einen Drehschalter (6 Schaltschritte, nicht kurzschließend) an PORTC einlesen. Der gemeinsame Anschluss liegt auf Masse, die 6 Anschlüsse der Schaltstellungen sind mit den Eingängen PC0 bis PC5 verbunden. An PORTA sind acht LEDs angeschlossen, welche auch korrekt arbeiten. Das ist wirklich sichergestellt. Ich versuche nun, den Zustand von PORTC einzulesen und jeweils eine entsprechende LED anzusteuern. Beim Drehschalter beginne ich mit Stellung 3 zu zählen, die letzte Stellung ist dann 8. Wenn also die erste Position (PC5, rückwärts gezählt) eingestellt ist, soll LED3 leuchten. In meinem Programm habe ich die LEDs über ein Makro definiert, der Einfachheit halber habe ich diesen Part weggelassen. Funktioniert aber, da es kein Problem ist, die LEDs mit einem Bitmuster oder einer Hex-Zahl direkt anzusteuern. Wenn ich nun den Schalter aber drehe, kommen nicht die LEDs wie gewünscht, sondern die LEDs 3,4,5,6 kommen nacheinander (habe ich mit jeweils eingebauter verzögerung getestet) und leuchten danach dauerhaft, LED7 und LED8 funktionieren wie gewünscht. Ich habe mittlerweile alles versucht, komme aber auf keinen grünen Zweig. Ich habe auch bereits den Controller getauscht, da ich den Verdacht hatte, dass dieser defekt ist. Macht aber keinen Unterschied. Irgendwie scheinen diese vier Port-Pins nicht korrekt abgefragt zu werden. Elektrisch gemessen ist an allen Pins der gewünschte Signalpegel vorhanden. Die Fuses sind E:FF, H: 99 L:62 Hier der momentan arbeitende Abschnitt aus meinem Code
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 | |