Forum: Mikrocontroller und Digitale Elektronik STK500 - Leds invertiert oder doch nicht?


von Markus Lander (Gast)


Lesenswert?

Hallo zusammen,

ich bin Anfänger im µC Bereich und stehe auch schon vor dem ersten 
Problem.
Ich benutze das STK500 mit einem ATMEGA8515. Ich habe in anderen 
Beiträgen schon gelesen dass die Ausgänge invertiert sind nur dann 
verstehe ich folgendes nicht.

Bei diesem Programm leuchten alle LEDs, obwohl ich PORTB 0x00 übergeben 
habe.
---------------------------------------------------
.include "m8515def.inc"
.def temp = r16

ldi temp, 0xFF
out DDRB, temp

ldi temp, 0x00
out DDRD, temp

out portb, temp

loop: rjmp loop
---------------------------------------------------

Bei diesem Testprogramm wo ich die Tasten an PortD abfrage
und direkt an PortB weiterleite, ist es so wie es sein soll.
Also bei 0 ist die LED dunkel.

---------------------------------------------------
.include "m8515def.inc"
.def temp = r16

ldi temp, 0xFF
out DDRB, temp

ldi temp, 0x00
out DDRD, temp

loop:

  in temp, pind
  out portb, temp

rjmp loop
---------------------------------------------------

Wie kann das sein?? Ich habe bei beiden Programmen "temp" in das 
Watch-Fenster gegeben (AVR-Studio 4) und in der Simulation beobachtet.
Der Wert ist immer 0, trotzdem verhalten sich die LEDs bei beiden
Programmen anders!?

Für eure Hilfe währe ich sehr Dankbar. Ich blick einfach nicht durch :)

Mfg
Markus

von spess53 (Gast)


Lesenswert?

Hi

Die Taster sind auch invertiert (gedrückt=L).

MfG Spess

von crazy horse (Gast)


Lesenswert?

Leds schalten bei L-Pegel ein, die Schalter schalten nach Masse.
Schalte mal die pullups an PortD ein, damit du auch wirklich ein H 
liest, wenn der Taster nicht gedrückt ist.

ldi temp, 0xff
out PortD, temp
ldi temp, 0x00
out DDRD, temp

von Markus Lander (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Ich verstehe das aber immer noch nicht, denn in
der Simulation ist PIND = 0x00.

Dann ist die Simulation falsch!?
Oder wird in der Simulation das STK500 ignoriert?

Danke
Markus

von spess53 (Gast)


Lesenswert?

Hi

>Oder wird in der Simulation das STK500 ignoriert?

Ja.

MfG Spess

von Markus Lander (Gast)


Lesenswert?

Also ich habe jetzt die Pullups in beiden
Testprogs aktiviert. Hat sich aber nichts
geändert.
So wie es aussieht muss ich es wohl akzeptieren.

Trotzdem Danke!
Markus

von Jürgen B. (hicom)


Lesenswert?

Ist doch alles richtig, im 1. Beispiel schreibst du 0x00 auf den Port = 
Leds an.
Im zweiten Beispiel liest du PIND ein (0xFF wenn kein Taster aktiv)  und 
schreibst das auf den Port = Leds aus.

von Gast (Gast)


Lesenswert?

Der Simulator hat mit dem STK500 überhaupt nichts zu tun.

Im Simulator gibts weder LEDs noch Taster; es gibt nur Bits in Kästchen. 
Die kannst Du natürlich per Mausklicks STK500-konform setzen oder 
löschen, aber das obliegt Deiner Verantwortung.

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.