Doppel-Hex-Anzeige am 8-Bit-Port.

Gast #674422
Lesenswert?
• ▲
▼
Werte AVR-Gemeinde.
Da habe ich nun zur Probe zwei Hex-Dekoder
nebst Lichtschacht-Anzeige an den PortA angeschlossen.
Außerdem habe ich ein kleines Test-Programm (siehe Anhang)
in meinen AtMega8515 geladen.
Beim Ausprobieren wechselt die Anzeige aber immer nur zischen 0F und FF.
Eigentlich wollte ich doch folgende Reihenfolge sehen:
Hex00
Hex55
HexAA
Hex00
usw...
Dabei hängt ein Dekoder an den untersten 4 Bit und der andere an den 
oberen.
Oder mache ich da einen furcht baren Denkfehler.
Im AVR-Simulator läuft es aber so, wie ich es haben will.
Vielleicht weiß da jemand Rat.
Vielen Dank: Wolfgang.
Angehängte Dateien:
#674518
Lesenswert?
• ▲
▼
Um erstmal festzustellen, ob ein Hardware- oder Softwarefehler
vorliegt, würde ich das folgende Programm mit verschiedenen
'ldi'-Werten nacheinander einspielen und die Pegel am Port A
und die Sinnfälligkeit der angeschlossenen Anzeige kontrollieren.


...

prog_start:

  ldi sr16,$00   ;verschiedene Werte testen
  out PortA,sr16
LOOP:
  rjmp LOOP      ;dynamischer Halt


Ich kann beim groben Überfliegen erst mal keine offensichtliche
Softwaremacke erkennen.

Vielleicht postest du noch mal den Typ des Hex-Dekoders oder
auch die ganze Schaltung, wobei die nach deiner Beschreibung
eigentlich klar ist :-)

Gruß Reinhard
Gast #674553
Lesenswert?
• ▲
▼
Nachtrag.
Erst mal vielen Dank für Eure Antworten.
Ich habe es auch auf der STK500-Platte laufen lassen.
Da zeigen die LED's den selben Mist.
Die Anzeige per LED's und Dekoder ist also identisch.
Deswegen glaube ich nun meiner Dekoder-Anzeige.
Als Dekoder habe ich fertig programmierte PAL16V8,
welche schon in einer anderen Anwendung funktionierten.
Es bleibt erst mal bei 0F und danach FF usw...
Das hätte ich wohl besser noch gleich dazu sagen sollen.
Natürlich werde ich Eure Vorschläge auch noch probieren.
Danke: Wolfgang.
Gast #674574
Lesenswert?
• ▲
▼
Nachtrag.
Habe nun noch folgendes probiert, was mit meinen Dekodern und STK500 
geht.
Auf den Dkodern gibt es jetzt wirklich abwechselnd 55 und AA zu sehen.
Das geht erst mal. Werde also weiter probieren.
Falls aber jemand noch eine Idee hat, nur raus damit.
Vielen Dank: Wolfgang.
Angehängte Dateien:
Gast #674777
Lesenswert?
• ▲
▼
Hallo.
Das hälst Du nicht für glaubst Du kaum. Grins.
Nachdem ich noch folgendendes geändert habe,
läuft es jetzt endlich, wie ich es will.
         ldi sr23, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
         out SPL, sr23
         ldi sr23, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
         out SPH, sr23

;  Ldi ZL,Low(RamEnd)
;  Out SPL,ZL
;  Ldi ZH,High(RamEnd)
;  Out SPH,ZH

Siehe auch zz.asm
Vielen Dank für Eure Bemühungen.
Gruß: Wolfgang.
Angehängte Dateien:
#675074
Lesenswert?
• ▲
▼
Sebastian Eckert wrote:
> Ach, ist ja interessant. Also muß man für das Initialisieren des Stack
> Pointers ein explizit angegebenes Register verwenden und nicht eine vom
> Assembler verwaltete Variable?

Nö, muss man nicht. Da geht jedes obere (immidiate-taugliche) Register.

...

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.