Habe ein Problem, immer wenn ich daten aus dem Flash auslese und dann r0 mit mov kopiere kann ich es nicht ausgeben, zwar kopiert er alles in das neue register aber am stk selbst werden die lämpchen nur schwach leuchtend angezeiht undzwar alle und nicht die die leuchten sollen. Habe auch probiert r0 direkt auszugeben im simulator klappt alles prima aber sobald es dies im chip tun soll das selbe problem. Anbei mal der unkommentiere Quelltext, is eigentlich so simpel das es klappen müßte aber der Teufel steckt im detail Weiss etvl wer nen rat? Assembler,stk500,
hab den source zwar jetzt nur kurz überflogen, aber ein paar Ungereimtheiten fallen mir auf. 1) wofür ist das compare r18 mit 0 ? (würde bei STK doch bedeuten daß du alle Tasten gleichzeitig drückst?? 2) Im ersten Durchlauf ist alles in Ordnung, du initialisierst den Pointer z und liest erst die linken, dann die rechten 4 LEDs, danach 0. und ab dann icrementierst du den pointer lustig weiter bis er bei 2^16 überläuft und wieder bei 0 anfängt. Dabei wird natürlich ausgegeben was immer im Memory steht. -> Ende der Tabelle abfragen und gegebenenfalls pointer wieder auf daten: setzen 3) das Ganze passiert viel zu schnell, wenn du z.B. mit 8MHz taktest sind alle (65000) Datenstellen in 80ms dargestellt worden (Dein Program braucht ca. 10 Takte pro Runde). Je nach dem wieviele 0 und 1 jezt im Memory stehen werden die LEDs unterschiedlich hell leuchten, den Bewegungsablauf wist du mt freiem Auge nicht mitbekommen. -> delays einbauen oder mit Timerinterrupt arbeiten. grüße leo
Zu 1 : Naja wenn er irgendwann aus dem flash null liest soll er stoppen . Das ist alles immer recht irritierend wenn es im Avrstudio simuliert funktionniert und in der Praxis dann nicht mehr, zudem habe ich in anderen Programmen delays eingebaut und es ändert sich nix. hmm hat evtl. jemmand ein beispiel welches bei ihm funktioniert ?irgendein Lauflicht ?
Hi! Ist klar, wenn du nicht auf 0 testest kann es nicht gehen. Habe schnell mal was eingefügt was die Sache erledigt. loop: lpm tst r0 brne ok ldi zl,low(daten*2) ldi zh,high(daten*2) rjmp loop ok: in r18,pind cpi r18,0b11111110 breq knopf. MFG Uwe
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.