Hallo Leute,
ich habe seit gestern das AVR STK500 und wollte nun ein kleines
Anfängerprogramm schreiben, wo ich einfach nur die Taster drücke und ein
paar LEDs angehen.
Auf irgendeiner Seite hier im Forum habe ich gelesen, dass man bei den
AVR Prozessoren nicht zwei Port - Anweisungen direkt nacheinander
ausführen kann. Also sprich ich kann nicht an Port D einlesen und direkt
danach an Port B etwas ausgeben. Ich weis nicht ob ich das richtig
verstanden habe, aber ich glaube, dass ist auch gerade mein Problem.
Auf meinem Board ist ein Atmega8515L und ich habe folgenden c - code
geschrieben. Auf die Tasten reagiert der Prozessor allerdings nicht.
Vielleicht könnt ihr mir ja weiterhelfen!
MFG BlueMorph
1 | #include <avr/io.h>
|
2 |
|
3 | #define ausgang 0xff
|
4 | #define eingang 0x00
|
5 | #define all_leds_out 0xFF
|
6 |
|
7 | int main (void){
|
8 | uint8_t bPortD;
|
9 |
|
10 | DDRB = ausgang;
|
11 | DDRD = eingang;
|
12 |
|
13 | PORTB = all_leds_out;
|
14 |
|
15 | while (1){
|
16 | bPortD = PIND;
|
17 | if (bPortD == 0x01){
|
18 | PORTB = 0b01010101;
|
19 | }
|
20 | if (PIND == 0x02){
|
21 | PORTB = 0b10101010;
|
22 | }
|
23 | if (PIND == 0x04){
|
24 | PORTB = 0xFF;
|
25 | }
|
26 | if (PIND == 0x08){
|
27 | PORTB = 0x00;
|
28 | }
|
29 | }
|
30 | return 0;
|
31 | }
|