Ich habe die LCD Libraray und das Testprogramm von Peter Fleury an mein 4*20 Display angepaßt (4 bit Mode, PortC) , das will nicht funktionieren. Ich habe mir den Code im AS4 angesehen, und verstehe nicht was der Code soll. Habe daher 2 Fragen : 1) Kann mir jemand den SourceCode (stub) senden, der vom Linker vor der Funktion main() abgearbeitet wird. Habe mir den Source vom WinAvr heruntergeladen, kann aber mit den DateiTypen nichts anfangen. 2) Ich habe dieses Forum und Help schon durchsucht, aber nichts gefunden, wie ich vom Compiler einen AssemblerOutput erhalte.
Der Sourcecode steht in avr-libc/crt1/gcrt1.S. Teilweise könnten noch Funktionen aus der libgcc.a eingebunden werden. Deren Quellen findest Du in gcc/gcc/config/avr/libgcc.S. (Die genauen Standorte im WinAVR mußt Du Dir bitte suchen. Ich hab' hier kein Windows.)
@Mario, Was funktioniert denn nicht beim Ansteuern des Display ? Erscheinen schwarze Klötzchen auf dem Display ? Läuft die lcd_init() Routine durch ? (Teste mit einer LED Ausgabe nach lcd_init() ) Die LCD library lässt sich schlecht in AS4 debuggen, weil AS4 keinen LCD controller simulieren kann.
@Peter: Vielen Dank!!! Ja, schwarze Klötzchen in jeder 2ten Zeile bei einem 4 zeiligen Display. Bis zu lcd-init bin ich gar nicht gekommen, da ich mal im AS4 ansehen wollte, was sich da so alles abspielt - klar - simulierender Weise! Das ist ja ein höchst perverser ObjectCode, bin halt 6502 und 68000er Code gewohnt. Mein nächstes Problem war, daß die Einen in Worten, die Anderen in Byte zählen (LST und MAP Dateien). Wußte daher nicht wo ich im AS4 gerade bin und wer sich da verlaufen hat. Soweit mal zum "Dampf ablassen" ... Du meinst, daß ich nach lcd-init an einem Port eine Led auf/abdrehen soll? Mach ich. Danke jedenfalls.
Die GNU-Tools zählen komplett in Bytes, während Atmel wohl teilweise Wortadressierung bevorzugt. Das läßt sich beides nicht ändern. Atmel ist allerdings damit nicht konsequent, da LPM/SPM wieder byteadressiert sind (was dieses @$!% RAMPZ eingehandelt hat beim ATmega103/128). Was vor main() passiert, ist aber in der (avr-libc) Doku einigermaßen beschrieben. Du mußt das also vielleicht ja nicht unbedingt komplett in der Simulation einzelschrittweise angucken, um das Problem Deiner nicht funktionierenden Applikation zu debuggen.
Vielen Dank an alle, genau das PORTC war teilweise defekt. Anfängerfehler ...
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.