Forum: Compiler & IDEs edam's arduino makefile falsche Baudrate


von Bernd B. (berbog)


Lesenswert?

Hallo
Beim Programmieren eines Uno mit 328p Prozessor versucht Geany ihn über 
das edam's arduino makefile und avrdude mit 57600 baud zu programmieren.

/usr/bin/avrdude  -DV -p atmega328p -P /dev/ttyUSB0 -c arduino -b 57600 
-U flash:w:Test.hex:i

Gebe ich diese vom Makefile ausgegebene Zeile manuell mit 115200 ein ist 
alles OK.
Weiß jemand wo ich das anpassen kann oder wo die vorgegebene Baudrate 
57600 herkommt ?

Gruss und Danke
Bernd

von Markus F. (mfro)


Lesenswert?

Nun, wenn make mit diesem Makefile die Baudrate so ausspuckt, dann steht 
die wohl entweder im Makefile oder im make-Aufruf (also irgendwo in 
Geany).

Kann doch nicht so schwer sein?

von Otto Normal (Gast)


Lesenswert?

Die Vorgabe muss das Makefile machen. Dieses besteht allerdings nur aus 
Variablen. Die Vorgabewerte holt es sich wohl aus der avrdude.conf.
Diese ist für mich ähnlich unübersichtlich.
Hier mal der Link zum Makefile.

http://ed.am/dev/make/arduino-mk/arduino.mk

Vieleicht hat jemand ein anderes Makefile

Vielen Dank

von Otto Normal (Gast)


Lesenswert?

Das Problem ist gelöst
Es muss  beim Aufruf anstatt

make -f ../Makefile BOARD=328
make -f ../Makefile BOARD=uno

heißen

und

make -f ../Makefile upload BOARD=328
make -f ../Makefile upload BOARD=uno

heißen
 Gruss Bernd

von Markus F. (mfro)


Lesenswert?

Otto Normal schrieb:
> Diese ist für mich ähnlich unübersichtlich.
> Hier mal der Link zum Makefile.

Kann ich nicht nachvollziehen. Das Makefile ist durchaus sehr 
übersichtlich aufgebaut:
1
# obtain board parameters from the arduino boards.txt file
2
BOARDSFILE := $(ARDUINODIR)/hardware/arduino/boards.txt
3
readboardsparam = $(shell sed -ne "s/$(BOARD).$(1)=\(.*\)/\1/p" $(BOARDSFILE))
4
...
5
6
BOARD_UPLOAD_SPEED := $(call readboardsparam,upload.speed)

Heisst soviel: die Baudrate wird aus einer Datei namens "boards.txt" 
(das ist wohl Bestandteil deiner Arduino-Installation) unter 
"upload.speed" gelesen.

Und wie das richtige Board eingebunden wird, steht auch drin:
1
#   SOURCES := main.cc other.cc
2
#   LIBRARIES := EEPROM
3
#   BOARD := pro5v
4
#   include ~/src/arduino.mk

Heisst: das Makefile ist nicht zum direkten Ausführen gedacht. Du sollst 
die vier Zeilen oben in dein eigenes einbauen.

von Otto Normal (Gast)


Lesenswert?

Das ist schon richtig.
Das Problem ist nur das das edam's Makefile nicht den 328 sondern nur 
den Uno kennt.
Aber vielen Dank
Gruss Otto

von Markus F. (mfro)


Lesenswert?

Otto Normal schrieb:
> Das Problem ist nur das das edam's Makefile nicht den 328 sondern nur
> den Uno kennt.

das Makefile kennt überhaupt nix. Hab' ich doch oben erklärt.
Das wird alles aus dem boards.txt deiner Arduino-Installation geholt.

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
Noch kein Account? Hier anmelden.