Forum: Mikrocontroller und Digitale Elektronik STK500 Atmega8515 und einfaches C-Programm


von Neb N. (bluemorph)


Lesenswert?

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
}

von Otto (Gast)


Lesenswert?

Flachkabel für Port B und Port D richtig aufgesteckt ?
Leuchten die LEDs ?

Otto

von Tobias A. (tadolph)


Lesenswert?

Hallo Benny,

soweit ich weiß sind sowohl die Taster als auch die LEDs low-aktiv.

Bei der Abfrage auf 0x01 bedeutet das entsprechend, dass du sieben 
Taster gleichzeitig drücken mußt.

Probier es mal mit 0xFE. Bei den anderen entsprechend...

Tobias

von Neb N. (bluemorph)


Lesenswert?

@tadolph mhh, in der Simulation klappt es immer so!!

Wenn ich den Mikrocontroller programmiert hab, passiert allerdings gar 
nichts. Die Flachbandkabel sind richtig aufgesteckt. Hab ich nochmal 
geguckt. Ich probier jetzt mal (sieben Taster zu drücken smile).

von Neb N. (bluemorph)


Lesenswert?

mhh, leider hat das mit den sieben Taster drücken nicht funktioniert. 
Ich denke auch, dass die Taster high aktiv sind.

von Gast (Gast)


Lesenswert?

Da muss man nichts denken oder glauben, das ist einfach so. Steht auch 
irgendwo in den Unterlagen zum STK500 :).

Läuft es denn jetzt mit 0xFE?

von Neb N. (bluemorph)


Lesenswert?

Super! Hat geklappt. Hattest recht!!! Taster und LEDs sind low aktiv! 
Danke dir!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.