mikrocontroller.net

Forum: Compiler & IDEs habe Probleme mit WINAVR


Autor: thomas w. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Thomas W. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.