Forum: Mikrocontroller und Digitale Elektronik WinAVR: Ports H-L bei Mega640


von mk (Gast)


Lesenswert?

Hallo,


o.g. Ports sind in iomxx0_1.h nicht enthalten.
Der entsprechende Part endet mit

#define PING    _SFR_IO8(0x12)
#define PING5   5
#define PING4   4
#define PING3   3
#define PING2   2
#define PING1   1
#define PING0   0

#define DDRG    _SFR_IO8(0x13)
#define DDG5    5
#define DDG4    4
#define DDG3    3
#define DDG2    2
#define DDG1    1
#define DDG0    0

#define PORTG   _SFR_IO8(0x14)
#define PG5     5
#define PG4     4
#define PG3     3
#define PG2     2
#define PG1     1
#define PG0     0

also mit Port G. Wie muss ich die Datei erweitern, um auf alle Ports des 
Mega640 zugreifen zu können? Oder gibt es bereits was fertiges? Es 
wundert mich etwas, dass die Ports selbst in iom640.h nicht definiert 
werden.

Vielen Dank!


mk

von Oliver J. (skriptkiddy)


Lesenswert?

Schau mal in die "iomxx0_1.h"


PS. Manchmal ist ein grep auf ein Verzeichnis ganz praktisch :)

Gruß Oliver

von mk (Gast)


Lesenswert?

Hallo Oliver,

der oben gezeigte Auszug ist aus der iomxx0_1.h.
PORTL kommt hier z.B. standardmäßig nur unter "#if 
defined(_ATmegaxx0_)" vor. Anscheinend nimmt er sie aber nicht mit 
rein, da ich den Fehler "Symbol 'PORTL' could not be resolved" in 
Eclipse bekomme.


mfg

von Cyblord -. (cyblord)


Lesenswert?

Bekommst du den Fehler nur in Eclipse oder auch beim Compilieren selber? 
Wenn nur beim Eclipse dann versuch Index->Rebuild.

von MWS (Gast)


Lesenswert?

Die iom640.h definiert das Symbol
1
_AVR_IOM640_H_
 und inkludiert iomxx0_1.h, welche aber als Symbol ein
1
__AVR_ATmega640__
 erwartet.

Definiere
1
__AVR_ATmega640__
 in der iom640.h, dann sollten die Portdefinitionen drin sein.

von Peter D. (peda)


Lesenswert?

MWS schrieb:
> Definiere__AVR_ATmega640__ in der iom640.h

Nö.
Definiere das Target im Makefile richtig, dann klappt es auch.

Ehe man in den Standardincludes rumpfuscht, sollte man sich 100%-ig 
sicher sein, daß darin der Fehler liegt.


Peter

von MWS (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Definiere das Target im Makefile richtig, dann klappt es auch.

Gut. Wie lautet die Definition Deiner Meinung nach ?

von Peter D. (peda)


Lesenswert?

MWS schrieb:
> Gut. Wie lautet die Definition Deiner Meinung nach ?

Im Make, wo das Target angegeben wird:
# MCU name
MCU = atmega640


Peter

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.