Forum: Mikrocontroller und Digitale Elektronik ATmega88P: WordClock Matrix mit SPI ansteuern


von Julian R. (tuefftler)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe mir eine WordClock(1) gebaut und versuche sie zu programmieren.
Weil ich etwas dazulernen will, programmiere ich sie in ASM. Zum flashen 
benutze ich avrdude mit Burn o'Mat. Das ganze läuft dann auf die 
WordClock Platine via ISP.
Da ich normalerweise den ATmega8 verwende, hab ich erstmal das Programm 
für den m8 geschrieben.
Dann musste ich feststellen, dass der m88 passender ist weil er mir für 
meine RGB-LED's hardware PWM bereitstellt...   und wollte auf den m88 
wechseln.
Also hab ich alles umgeschrieben (naja soviel wars nicht..) und brings 
seitdem nicht mehr hin.

Unten findet sich der Schaltplan(2) der WordClock, bei dem man nur 
wissen muss, dass am ATmega8/88P drei Schieberegister hängen.

Mein Programm besteht aus vorläufig zwei Dateien, einmal das 
Hauptprogramm;
das andere sind die Unterprogramme für die Schieberegister.

Was ist das Problem?
Das Problem ist, dass das Programm funzt, wenn der ATmega8 verbaut ist;
Beim ATmega88P kann ich die ersten drei Bits jedes Schieberegisters 
nicht richtig ansprechen: Wenn ich an alle Schieberegister 0x00 schicke, 
erhalte ich beim 1. Schieberegister 0x01, beim 2. 0x02 und beim 3. 
0x04!?

Natürlich tausche ich jedesmal die Definitionsfiles in der ersten Zeile 
des Hauptprogramms

mfg julian

Links:
1.http://www.mikrocontroller.net/articles/Word_Clock_Variante_1
2.http://www.mikrocontroller.net/wikifiles/3/35/Wordclock-schmal-schaltung.png

von Julian R. (tuefftler)


Lesenswert?

Kann man beim SPI ein Startbit einstellen?

julian

von Julian R. (tuefftler)


Lesenswert?

*Problem gelöst!*

Wenn man den GANZEN Tag nach der Lösung sucht, dann findet man sie auch.

Mein Tipp, für alle die SPI auf dem ATmega8 programmiert haben und's auf 
den ATmega88P umschreiben:
Schaut euch die Bits CPOL u. CPHA im SPCR an, was auf dem einen lief 
(m8: Cpol=0; Cpha=0) ist auf dem anderem ganz anders(m88p: Cpol=0; 
Cpha=1)

julian

*Problem gelöst!*

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.