mikrocontroller.net

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


Autor: Markus Lander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Lander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Oder wird in der Simulation das STK500 ignoriert?

Ja.

MfG Spess

Autor: Markus Lander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Berger (hicom)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.