ATmega32 SPCR falsche Daten

Gast #4409034
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
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
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 #4409803
habe in der Korrektur noch einen Fehler entdeckt, es muss so aussehen:

out spdr,SPI_Code
rcall abwarten_bis_gesendet
sbi portb,cs

...aber auch damit keine Funktion...
Gast #4409853
> 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
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 #4409884
Hi

>(stellt sich allerdings die Frage was er mir mit "ldi" angezeigt hat -
>der Inhalt des SPCR kanns ja dann nicht gewesen sein!)

Die Adresse von SPCR.

MfG Spess
Gast #4409886
> 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
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.