Hallo
Ich habe folgendes problem
Ich habe mir nun das myAVR MK3 Board mit dem Atmega 2560 gekauf.
Nun habe ich die ersten Erfahrungen mit dem Programmieren in C gemacht.
Ich würde gerne mit meinen 3 Schaltern 3 LED schalten
Laut Datenblatt von myAVR ist der Taster 3 auf K2,der Joystick auf K3-K7
Hir der Code:
1 | #include <avr/io.h>
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | int main (void)
|
9 |
|
10 | {
|
11 |
|
12 |
|
13 |
|
14 | //Port-B als Ausgang konfigurieren (für 7-Segment-Anzeige)
|
15 | DDRB=0xFF;
|
16 |
|
17 | //Port-L als Ausgang konfigurieren
|
18 | DDRL |= 0xFF;
|
19 |
|
20 | //Port-K als Eingang konfigurieren
|
21 | DDRK=0x00;
|
22 |
|
23 |
|
24 | // PULL UP
|
25 | PORTK = 0xFF;
|
26 |
|
27 | while (1)
|
28 |
|
29 | {
|
30 |
|
31 |
|
32 | if ((PINK&4)==0) //Taste S0 gedrückt
|
33 | PORTL |= (1<<PL7); //LEDs einschalten
|
34 | else
|
35 | PORTL &=~(1<<PL7);
|
36 |
|
37 |
|
38 | if ((PINK&2)==0)
|
39 | PORTL |= (1<<PL1);
|
40 | else
|
41 | PORTL &=~(1<<PL1);
|
42 |
|
43 | if ((PINK&1)==0)
|
44 | {
|
45 | PORTL |= (1<<PL5);
|
46 | PORTL |= (1<<PL4);
|
47 | }
|
48 | else
|
49 | {
|
50 | PORTL &=~(1<<PL5);
|
51 | PORTL &=~(1<<PL4);
|
52 | }
|
53 |
|
54 |
|
55 |
|
56 |
|
57 | }
|
58 |
|
59 |
|
60 |
|
61 | return 0;
|
62 | }
|
Der Taster 1 wird mit PINK&1 geschaltet. Klappt
Der Taster 2 wird mit PINK&2 geschaltet. Klappt
Der Taster 3 wird mit PINK&3 geschaltet. Klappt nicht
Der Taster 3 wird mit PINK&4 geschaltet. Klappt
PINK&5-7 geht nicht.
Das selbe bei Port E. E1=0,E2=1 E3 geht nicht E4=2
E5 bis E7 keine Funktion
Einen Defekt schließe ich aus da das Testprogramm durchläuft.
Wie mache ich den Fehler.
MFG Christoph