ATmega32 SPCR falsche Daten

Gast #4409034
Lesenswert?

Hallo Forum

ich möchte mit einem ATmega32 ein Graphik-Display EA-DOGS 102-6 über SPI 
ansteuern - was mir leider bisher noch nicht gelungen ist.
Bei meiner Fehlersuche ist mir folgendes aufgefallen:

ich schicke folgende Sequenz ans SPCR:
0<<spie|1<<spe|0<<dord|1<<mstr|1<<cpol|1<<cpha|1<<spr1|1<<spr0

beim Auslesen des Registers zeigt sich aber folgendes:
0<<spie|0<<spe|0<<dord|0<<mstr|1<<cpol|1<<cpha|0<<spr1|1<<spr0



wie kommt das?
wie kann ich weiter vorgehen?
(der ganze .asm-file im Anhang)

Gruß Bernd
Angehängte Dateien:
Gast #4409065
Lesenswert?

Hallo Holger,

erstmal vielen Dank für die schnelle Antwort.

den Code habe ich jetzt so angepasst:

out spdr,SPI_Code
;sbi portb,cs
rcall abwarten_bis_gesendet
sbis portb,cs

es ändert nur leider nichts am Ergebnis :-(

Gruß Bernd
Gast #4409789
Lesenswert?

ja, an beiden Stellen.

Das oben genannte Ergebnis erscheint auch wenn ich direkt zur Schleife 
springe ohne das vorher über die SPI-Schnittstelle was gesendet wurde...

Das ganze befindet sich im fliegenden Probeaufbau auf einem STK500 - ob 
das Board hier Ärger macht?! Schließlich programmiere ich den Chip über 
die ISP-Schnittstelle - die hängt ja am SPI.

Gruß Bernd
Gast #4409853
Lesenswert?

> ldi temp,spcr
lädt den Registerinhalt vom SPCR ins temporäre Register (R16)

> out portd,temp
zeigt mir den Inhalt vom temporären und somit auch vom SPCR am Port D 
an,

(...denke ich zumindest - aber aufgrund Deiner Nachfrage kommt mir der 
Gedanke es sollte "in" anstelle von "ldi" sein, das probier ich gleich 
mal aus)

Gruß Bernd
Gast #4409870
Lesenswert?

mit "in" ist die Anzeige des SPCR wie sie sein sollte, also hab ich hier 
wohl einen Fehler gemacht - sorry, Anfänger eben ;-)
(stellt sich allerdings die Frage was er mir mit "ldi" angezeigt hat - 
der Inhalt des SPCR kanns ja dann nicht gewesen sein!)

Unabhängig davon habe ich nach wie vor keine Anzeige am Display - ich 
werde den Verdacht nicht los daß das Display selbst defekt ist...

an dieser Stelle schon mal vielen Dank für eure Hilfe :-)


Gruß Bernd
Gast #4409886
Lesenswert?

> Anfänger

Okay, dann gerne ausführlich: SPCR hat die Adresse 0x0D laut Datenblatt 
Register Summary, mit 'ldi temp,SPCR' wird genau dieser Wert, also die 
Konstante 0x0D geladen.

> werde den Verdacht nicht los daß das Display selbst defekt ist
Auch das ist ein typischer Anfängerfehler, meist liegt es an einem 
selbst.
Gast #4409901
Lesenswert?

vielen Dank für eure Erklärungen.

Display ist definitiv nicht defekt - es war ein Draht der 
Spannungsversorgung abgebrochen...

Es zeigt mir zwar noch nicht den gewünschten Inhalt, aber es lässt sich 
zumindest schon mal ansprechen - will sagen: die Pixel werden dunkel

Gruß Bernd

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren