- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 45

Thema: AVR Programmieren unter LINUX

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Jetzt wo ich das so geschrieben habe, stelle ich fest, daß das Makefile nicht optimal ist, aber es funktioniert und ist einfach. Es sollte noch ein Ziel namens hex geben ... Das ist aber ein kleiner Bug (oder feature? ). Mit dem Ziel hex wäre bei einem "make flash" und geänderten Quelldateien automatisch die Kompilierung angeworfen.

    @Falte: Makefile ist Makefile. Bei mir ist das ganze eben von dem Obj Files her aufgezogen und nicht von den C/C++ Files. Lässt sich aber durch die Regeln auch von den c/c++ Files her aufziehen.

    Heute abend kann ich mal
    a) mein hex target einbauen
    b) das ganze über c/c++ files her aufziehen.

    Die Entsprechung deiner PROJECT_SOURCES ist meine OBJ Variable. Vermutlich kannst du sogar das Makefile das du unter WinAVR genutzt hast auch unter Linux verwenden. WinAVR setzt auch auf die GNU Toolchain. Es muss auch CC usw. Variable geben. Die musst du halt anpassen. Kannst ja mal so ein Makefile hier posten (nicht nur Ausschnitte). Dann kann ich dir helfen.
    Geändert von schorsch_76 (27.08.2014 um 07:03 Uhr) Grund: Erweiterung der Antwort für Falte

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.08.2014
    Beiträge
    10
    Erstmal besten Dank Georg für dein Makefile und der Erklärung. Beim durcharbeiten deines Makefiles ist mir eine Frage aufgekommen. Und zwar frage ich mich welche Frequenz ich für die CPU einstellen muss. Also ich gehe davon aus, dass MCU der jeweilige Mikrocontroller ist und die F_CPU die entsprechende Frequenz richtig? Ich nutze ein Micaz-Modul mit einem ATmega128. Ein entsprechendes Datenblatt findet man hier. Im AVRStudio stelle ich keine explizite Frequenz ein. Kannst du mir da vielleicht auch nochmal helfen? Vielen Dank nochmal für deine Hilfe. Erste Hilfe die verständlich ist für mich.

    Besten Gruß,

    Falte

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Das define (-DF_CPU=16000000) stellt nichts ein. Es teilt dem Compiler und damit dem Programm die Taktfrequenz als ein define mit. Das define wird dann im Quelltext benutzt um bsp. Register für RS232 zu berechnen welche von der Taktrate der CPU abhängen. Die Takteinstellung geht klassisch über Quarz und die Fuses. Stimmt das define nicht, stimmen die Werte für meine RS232 Einstellung nicht und RS232 funktioniert dann nicht.

    MCU = Micro Controller Unit = Mikroprozessor

    EDIT:
    Wenn du das define F_CPU nicht im Quelltext brauchst, ist es nicht nötig. Wenn deine Fuseflags passen, brauchst du hier nicht zu drehen.
    Geändert von schorsch_76 (27.08.2014 um 07:42 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.08.2014
    Beiträge
    10
    Okay. Ich weiß noch nicht genau ob ich das verstanden habe. Wo bekomme ich denn raus, welche Frequenz ich da eingeben muss. Ist das die gleiche Frequenz wie die Baudrate, die ich zum Beispiel im GTKTerm einstelle wenn ich auf den USB-Port horche und mir die Ausgaben anschaue? Habe ein bischen Muffe davor die Boards kaputt zu machen, weil es nicht meine sind...

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Ich weis ja nicht was du exakt machen willst.

    Das einzigste Problem bei den Atmegas ist, dass man sie "verfusen" kann ....

    Wenn du ...
    ... an den Fuseflags nichts drehst
    ... das Ding einen ISP Anschluss hast
    ... du das "orginal" hex File hast (eventuell auch einen EEPROM Abzug)

    Kannst du das Ding (zumindest die CPU) nicht zerstören. Was die IO's mit der anderen Hardware wie dem Funkmodul machen, kann ich dir nicht sagen.

    Wenn du Angst hast das Ding zu zerstören, dreh nicht an den FUSES!

    F_CPU = Taktfrequenz der CPU
    Baudrate RS 232 ist etwas ganz anders. Das ist das was du bei gtkterm und Konsorten einstellst.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    26.08.2014
    Beiträge
    10
    Also dann lieber nicht dein Makefile nehmen?

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Mein Makefile dreht nur bei einem "make writefuses" an den Fuses. Es wird nur durch diesen Befehl die Fuses angepasst. Falls du sichergehen willst, kannst du die Ziele readfuse/writefuse und die dazugehörigen Befehlszeilen löschen.

Ähnliche Themen

  1. [AVR-gcc] Installation unter Linux
    Von Bääääär im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 13.05.2008, 10:16
  2. avr-gcc unter linux
    Von donni im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 06.04.2006, 21:57
  3. AVR unter Linux programmieren?
    Von jagdfalke im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 20.03.2006, 20:48
  4. Bascom-AVR unter Linux?
    Von raptor_79 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 17.01.2006, 11:17
  5. gcc-avr unter Linux
    Von bluebrother im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 03.01.2005, 21:54

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress