Forum: Mikrocontroller und Digitale Elektronik µC am Mac mit C programmieren


von boris w. (astloch)


Lesenswert?

Hallo zusammen.
ich hoffe ihr könnt mir helfen. Ich habe schon einiges im Netz 
durchforstet, aber nichts gefunden was mir richtig weiterhilft.

Ich habe einen AT90USB1287 und möchte diesen an meinem Macbook (Snow 
Leopard) in C programmieren. Ich habe es mit dem Beispielprogramm von 
CrossPack versucht. Aber da sagt mir XCode immer folgende Fehler:


In file included from main.c:1:0:

/usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/incl 
ude/avr/io.h:428:6 
/usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/incl 
ude/avr/io.h:428:6:  warning: #warning "device type not defined"

main.c: In function 'main':

main.c:6:5 main.c:6:5: error: 'DDRD' undeclared (first use in this 
function)

main.c:6:5 main.c:6:5: note: each undeclared identifier is reported only 
once for each function it appears in

main.c:12:9 main.c:12:9: error: 'PORTD' undeclared (first use in this 
function)

make: *** [main.o] Error 1

Ich kenne mich überhaupt nicht aus mit XCode und weiß auch nicht wo er 
in dem Beispielprogramm die header-file her hat. Da gibts doch nur das 
makefile und main.

Ich bedanke mich schon mal für eure Hilfe.

Schönen Abend noch

Astloch

von Walter S. (avatar)


Lesenswert?

boris w. schrieb:
> #warning "device type not defined"

das ist die entscheidende Meldung, den musst du also irgendwo 
definieren.

Am MAC ist doch laut den MAC-Jüngern alles so einfach?

von T. Reinisch (Gast)


Lesenswert?

Hallo,

boris w. schrieb:
> Ich habe es mit dem Beispielprogramm von
> CrossPack versucht.

schreib doch noch mal, was genau das bedeutet. Welche Version von XCode, 
welche Command Line Tools, und was genau hast Du von der Installation 
bis zur Fehlermeldung getan?

Insbesondere, hast Du "avr-project" benutzt um das Demo Projekt 
anzulegen, oder wie hast Du das gemacht. Hast Du das Device und den 
Programme geändert, oder nicht, hast Du ein alternatives Makefile 
installiert?

Bei mir klappt alles, was Dir nicht hilft, aber ein Indiz dafür ist, 
dass es prinzipiell geht.

Vlg

 Timm

von boris w. (astloch)



Lesenswert?

Also ich habe XCode 3.2.6 und habe die hochgeladene Anleitung bis zu dem
Punkt wo ich das main.c builden soll.

Das Makefile habe ich geändert:
DEVICE     = AT90USB64/128-TQFP
CLOCK      = 8000000
PROGRAMMER = #-c stk500v2 -P avrdoper
FUSES      = -U hfuse:w:0x99:m -U lfuse:w:0x40:m
OBJECTS    = main.o

sonst hab ich nichts gemacht.
Ich hab auch noch die Fehlermeldung das DDRD und PORTD nicht deklariert
sind.

Die headerdatei ist noch angehängt.

von Εrnst B. (ernst)


Lesenswert?

boris w. schrieb:
> Die headerdatei ist noch angehängt

Wow. Als PDF.... naja, wenigstens kein BMP.

ich vermute mal, dein DEVICE-typ ist keiner, der in der io.h definiert 
ist. Prüf mal auf Tippfehler etc...

oder probier mal
DEVICE=at90usb1287


Liste gibts hier:
http://www.nongnu.org/avr-libc/user-manual/using_tools.html

von T. Reinisch (Gast)


Lesenswert?

Hallo,

hast Du denn verifiziert, ob die Devicebezeichnung

DEVICE     = AT90USB64/128-TQFP

gültig ist?  Müsste da nicht vielleicht eher sowas wie

DEVICE = AT90USB1287

stehen? Wäre mir jetzt nicht mal klar, ob / und - überhaupt erlaubte
Zeichen für ein Präprozessor-Symbol sind, hab da so meine Zweifel!

Viele Grüße

 Timm

von T. Reinisch (Gast)


Lesenswert?

Hallo,

grmmmpf. Sorry für X-Post.

Erhöht natürlich die Wahrscheinlichkeit eines Treffers :-))

vlg
 Timm

von boris w. (astloch)


Lesenswert?

Hallo zusammen,

hat geklappt.
Lag an der Schreibweise.

Danke allerseits.

Schöne Grüße

Boris

PS: versuche jetzt mal das Beispielprogramm in den uC zu laden.
und dann ne PWM für nen Motor;)

von boris w. (astloch)


Lesenswert?

...und nocheinmal,

ich bekomm es einfach nicht hin. Ich hab in dem makefile folgede Zeile

PROGRAMMER = -c usbasp

ich erhalte immer einen Fehler im Terminal

localhost:firmware boriswittich$ make flash
avrdude -c usbasp -p at90usb1287 -U flash:w:main.hex:i
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

avrdude done.  Thank you.

make: *** [flash] Error 1
localhost:firmware boriswittich$

Keine Ahnung welchen Programmer ich hier eintragen soll.

Hoffe ihr könnt mir nochmal helfen

Schöne Grüße

von ... (Gast)


Lesenswert?

boris w. schrieb:
> Keine Ahnung welchen Programmer ich hier eintragen soll.

Am Besten den, den du hast.

von M. K. (sylaina)


Lesenswert?

Oh, das ist schon ein paar Tage her aber ich erinner mich noch, dass das 
ein ganz schön blödes Gezappel war, den USB-Programmer dem System 
richtig beizubringen (hab den AVRISP MKII) sodass der AVRdude den auch 
genommen hat und man den Atmel auch flashen konnte. Google mal ein wenig 
danach.

von Boris W. (Gast)


Lesenswert?

Leute ich google mir schon die Augen wund.

Ich komm einfach nicht weiter. Was ist denn der Programmer? Ich hab den 
At90usb1287. Ich hab auch schon alle Anleitungen genau abgearbeitet, 
aber es klappt einfach nicht.

Gibts hier niemanden der mir konkret helfen kann?

Ich würde mich sehr freuen

von Tom M. (tomm) Benutzerseite


Lesenswert?

Boris W. schrieb:
> Ich komm einfach nicht weiter. Was ist denn der Programmer? Ich hab den
> At90usb1287. Ich hab auch schon alle Anleitungen genau abgearbeitet,
> aber es klappt einfach nicht.

Und der AVR steckt irgendwo auf einer Platine, die wiederum ist via USB 
mit dem Mac verbunden? Erzähl doch etwas mehr über dein Set-Up und/oder 
mach ein Foto vom Aufbau (Bildformate beachten).

Verwendest du eine UART/USB Bridge dafür (oft FTDI)?

Hat der AVR einen Bootloader drauf?

von Tom M. (tomm) Benutzerseite


Lesenswert?

Soviel ich im web lese, haben die AT90USB AVRs einen bootloader ab Werk 
drauf (DFU bootloader). Der wird meines Wissens von avrdude nicht 
unterstützt, aber von einem anderen Programm namens dfu-programmer

http://sourceforge.net/projects/dfu-programmer/

Den wirst du brauchen. Aber erzähl erstmal etwas mehr über dein Set-Up!

Edit: Siehe auch 
http://embsys.technikum-wien.at/staff/horauer/estick/docs/avr_macosx_tutorial.pdf

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.