-         

Ergebnis 1 bis 3 von 3

Thema: WinAvr

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.03.2004
    Beiträge
    94

    WinAvr

    Anzeige

    Hi, hab gerade angefangen den ATmega 8 mit C zu programmieren und hab mich für WinAvr entschieden, da es wohl am verbreitesten ist. Nur komm ich überhaupt nicht weiter, häng grade an der Doku und bin am verzweifeln. Kann mir vielleicht jemand in einigen kurzen schritten erklären, wie das genau abläuft ( Code mit welchem Tool compilieren, Makefiles einstellen, usw.) ?
    mfg

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.09.2004
    Ort
    Heilbronn
    Alter
    34
    Beiträge
    153
    Hallo LC-HC,

    also als erstes solltest du mit dem MFile- Tool ein Makefile erstellen. In dem Tool klickst du oben auf Makefile. Dann kannst du alles recht komfortabel einstellen. Das fertige Makefile speicherst du dann in den Ordner, in den später auch deine C- Datei kommt.
    Anschliessend gehst du ins Programmers Notepad. Darin kannst du dann dein C- Programm schreiben. Compiliert wird ebenfalls mit dem Notepad. Dazu gehst du auf "Tools", "[WinAVR] Make All". Jetzt sollten sich in dem Ordner ausser deinem C- File und dem Makefile noch ne Reihe anderer Dateien befinden (hex- Datei...). Wenn du neu compilieren willst solltest zuerst über "Tools", [WinAVR] Make clean" ausführen... Das löscht alle Dateien ausser deiner c und dem Makefile...

    Viel Spaß

    Marco

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2005
    Beiträge
    219
    zuallererst solltest du versuchen mit "avrdude" Kontakt zu deinem AVR aufzunehmen. Wenn das nicht klappt kannst du den ganzen Komfort von winavr-c vergessen...

    Solltest du ein Standard-ISP verwenden dürfte das aber kein Problem sein. Ansonsten musst du den deinen in die Config-Datei von avrdude eintragen.

    Die Doku brauchst du fast gar nicht zu lesen, es steht eh nix wichtiges drin.

    Für die Makefiles gibt ein "Sample", in der Anleitung steht ein bisschen...
    Aber allzuviel musst du da auch nicht machen.

    Ganz vorneweg: Ein großer Bug von winavr ist, dass die delay-Funktionen nicht für beliebige Zeitdauern funktionieren (weil für zu große Zeiten Überläufe entstehen...) man aber nicht gewarnt wird, sondern den Fehler selber suchen darf.
    Man kann also nicht
    Code:
    _delay_ms(1000);
    schreiben, um eine Sekunde zu warten. Je nach CPU-Takt muss man sich das ein bisschen Anpassen, bei mir geht
    Code:
    for(uint8_t i=0; i<20;i++) _delay_ms(50);
    Und leider werden diese Timing-Funktionen auch nicht auf den Takt genau ausgetüftelt, sondern nur so ungefähr...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •