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
*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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.