Forum: Mikrocontroller und Digitale Elektronik IAR Compiler einzelne Ports ansprechen


von John P. (Gast)


Lesenswert?

Hallo ich möchte einzelne Ports des Atmega32a mit dem IAR-Compiler 
ansprechen. Mit nem Atmega88 funktioniert das sehr einfach durch die 
iom88a.h
Damit lassen sich dann im header-file folgende Definitionen deklarieren
1
#define SW_QUER_P PINC_PINC2

und im c-file dann entsprechend verwenden.
1
if (SW_QUER_P) test=1;

Beim Atmega32a funktioniert dieser Syntax leider nicht. Hat jeman eine 
Idee?

von holger (Gast)


Lesenswert?

JTAGEN Fuse abschalten.

von Coder (Gast)


Lesenswert?

1)  Einfach in der Header Datei für den Mikrocontroller nachschauen, ob 
es so definiert worden ist. Hab die leider nicht im Kopf

2) Beim IAR gibt es noch bei den Projekteinstellungen eine Option, bei 
der man die IAR I/O Definitionen aktivieren muss.

von John P. (Gast)


Lesenswert?

Hallo, danke für die schnelle Hilfe. Ich habs ausprobiert und in die 
main folgenden Syntax mit reingenommen.
1
#define JTAGDE
2
3
#ifdef JTAGDE 
4
  MCUCSR |= (1<<JTD);
5
  MCUCSR |= (1<<JTD);
6
#endif

Führt immer noch zu folgender Fehlermeldung:

Error[Pe020]: identifier "PINC_PINC2" is undefined

von holger (Gast)


Lesenswert?

>Error[Pe020]: identifier "PINC_PINC2" is undefined

Ich kenn IAR zwar nicht, aber so ein define grenzt
schon an Schwachsinn. Erwarten würde ich PINC2.
Nicht mehr und nicht weniger.

von John P. (Gast)


Lesenswert?

Ja da geb ich dir recht. Ich kenn den CCS-Compiler von Microchip und 
hier gehts auch recht einfach. Der IAR-Compiler tut sich da etwas 
schwer. Den Syntax hab ich aus einem funktionierenden Projekt nur halt 
mit dem Atmega88 und der dazugehörigen iom88a.h.
Deshalb mein Einsatz es beim Atmega32a es auch so zu probieren.

PINC2  funzt auch nicht mit folgender Fehlermeldung:

Error[Pe137]: expression must be a modifiable lvalue

von holger (Gast)


Lesenswert?

>PINC2  funzt auch nicht mit folgender Fehlermeldung:
>
>Error[Pe137]: expression must be a modifiable lvalue

Ich geb dir mal nen ganz heissen Tip:
Schau mal in die iom32a.h da wirst du schon irgendwie
fündig werden wie das nun geschrieben wird.

von John P. (Gast)


Lesenswert?

Da hab ich schon geschaut und dieses define gefunden.
1
#define    PINC2    2

Da er dann meinen Aufruf PINC2=1 als 2=1 interpretiert macht die 
Fehlermeldung natürlich auch Sinn.

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.