Hallo, ich habe mir die neueste WINAVR-Version (vom 23.04.2003) runtergeladen und installiert. Ich möchte mit PN2 C-Programme erstellen und einen ATmega128 im STK500/501-Board von Atmel programmieren. Bloß wie mache ich jetzt weiter ? Ich habe versucht Beispielprogramme zu benutzen und ein makefile zu benutzen, kriege es aber einfach nicht hin. Was mir fehlt ist ein einfaches funktionierendes C-Programm, wie LEDx einschalten oder blinken lassen (das demo.c von WINAVR funktioniert z.B. nicht mit ATmega128) ,ein Beispielmakefile und eine Anleitung wie ich damit den MC über ISP programmieren kann. Kann mir da vielleicht jemand weiterhelfen ?
Naja, wenn Du Microcontroller programmieren können willst, solltest Du IMNSHO eigentlich in der Lage sein, das simple demo.c der avr-libc auch für einen ATmega128 anzupassen. Außer ein paar Namen, die beim m128 anders sind als bei den kleineren Controllern, ist da wohl nicht viel zu ändern... Ganz ehrlich, wenn Du das nichtmal schaffst, wie bekommst Du dann ein eigenes Projekt auf die Füße? Hier scheiterst Du ja nicht an WinAVR oder GCC-Eigenheiten, sondern am simplen Verständnis für die AVR-Controller selbst. Außerdem, hast Du denn die Doku zu diesem Beispiel wenigstens mal gelesen? Eigentlich ist da alles haarklein auseinandergenommen... Was Du natürlich unbedingt haben solltest, ist eine ausgedruckte (liest sich einfacher nach) und eine Online-Version (es sucht sich einfacher darin und Du hast Querverweise im PDF) des Atmel-Datenblattes für den ATmega128. Alle Namen von IO-Registern in <avr/io.h> sind so, wie sie das Datenblatt beschreibt. Ein Makefile an sich ist dabei, das führt bis zum iHex File. avrdude gab's noch nicht, als wir das Demo integriert haben, sonst wäre wohl auch mein ursprüngliches "make program" dringeblieben. Ein allgemeines Beispiel-Makefile mit der Einbindung von avrdude liegt WinAVR allerdings auch bei, Du mußt nur noch die Namen Deiner eigenen Quelldatei(en) eintragen. Caveat emptor: die LDFLAGS in Erics Beispiel binden die Gleitkommaversion von printf() mit ein, damit ist selbst das simpelste Progrämmchen einige Kilobyte groß. Auf einem m128 stört das zwar nicht weiter, aber Du brauchst es natürlich auch nicht, als kannst Du vor alle LDFLAGS-Zeilen getrost ein # schreiben.
p.s.: Beim ATmega128 bitte die LED nicht ohne Vorwiderstand betreiben. Dessen Ausgangsstufen sind selbst gegen GND deutlich stromergiebiger als die all seiner Vorgänger, so daß man sich (anders als bei jenen) jenseits der zulässigen Grenzdaten bewegen würde. Habe ich in der Doku auch nochmal drauf hingewiesen...
Hallo, in der Doku ist schon alles genau beschrieben, das Problem was ich habe liegt vielmehr darin, dass der Inhalt der files welche man damit erzeugt nicht mit dem listing in der Doku übereinstimmt. Ich bin genau nach der Anleitung vorgegangen, das mit dem makefile erzeugte demo.hex stimmt nicht mit dem in der Doku abgedruckten überein. Ich kann nicht ausschließen dass ich was falsch mache, aber ich habe es immerhin mehrfach probiert mit dem gleichen Ergebnis. (die demo.hex die ich erhalte habe ist angehängt) Da es an dieser Stelle schon Unstimmigkeiten gab und ich gerade erst anfange mich in dieses Thema einzuarbeiten habe ich noch gar nicht versucht das demo.c auf den ATmega128 passend umzuschreiben. Gruß Thomas
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.