Forum: Mikrocontroller und Digitale Elektronik Microchip Studio - Schlüsselwörter werden nicht erkannt


von C. H. (hedie)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich habe mir heute Microchip Studio zusammen mit deren xc8 Compiler 
installiert. Ich möchte für den Atxmega128A3U entwickeln.

Habe nun ein neues Projekt erstellt und bereits Probleme.
1
PORTA.DIR = 0x00;

Dabei wird PORTA nicht erkannt.
Wenn ich auf xc.h gehe und dort versuche die <avr/io.h> mittels "Go to 
implementation" aufzurufen, geschieht einfach nichts.

Kompilieren kann ich das ganze aber ohne Probleme.
In den Einstellungen des Projekts sind die korrekten Pfade verlinkt.
Ein separates hinzufügen under "Directories" hat nichts gebracht.

Hat jemand eine Idee?

Danke schonmal.

von STK500-Besitzer (Gast)


Lesenswert?

C. H. schrieb:
> PORTA.DIR = 0x00;

Die Register heißen beim AVR ja auch DDRA, DDRB,...

von C. H. (hedie)


Lesenswert?

STK500-Besitzer schrieb:
> C. H. schrieb:
>> PORTA.DIR = 0x00;
>
> Die Register heißen beim AVR ja auch DDRA, DDRB,...

Ja, beim ATMega nicht aber beim AtXmega...

Das Programm lässt sich ja kompilieren. d.h. am Code selbst ist nichts 
verkehrt. Aber IntelliSense funktioniert aus unbekannten Gründen nicht 
wie es soll.

: Bearbeitet durch User
von erklehr behr (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Die Register heißen beim AVR ja auch DDRA, DDRB,...

Geil. Bist auf dem Kenntnis-Stand vom Entstehungs-Datum
des STK500 stehen geblieben.

von neuer PIC Freund (Gast)


Lesenswert?

Dieses Verhalten kenn ich von MPLABX. Oftmals ist nach dem Aufstart 
alles Proz-Typische rot unterstrichen. Auch bei altbekannten Teilen. 
Irgendwann löst dann ein Hintergrundprozess dieses optische Problem. 
Oder oftmals direkt nach dem Kompilieren. Wenn dann noch nicht, dann 
niemals. Schnief.

Ob da bei Netbeans und Microsoft die gleiche Funktion dahintersteckt?

von C. H. (hedie)


Angehängte Dateien:

Lesenswert?

Danke für deine Antwort.
Es läuft hier kein Netbeans. Es ist VisualStudio integriert.

Habe inzwischen weiter geforscht.
Wenn ich das entsprechende io file direkt inkludieren (siehe bild), dann 
funktioniert intellisense auch nach dem entfernen des includes.

Echt zum kotzen...

Da das entsprechende io-file wird über den <xc.h> include includiert.
Dort steht dann:
1
#ifndef _XC_H
2
#define _XC_H
3
4
/* include CCI features.  */
5
#include <cci.h>
6
7
/* include device header file.  */
8
#include <avr/io.h>
9
10
/* define ei and di macros to enable/ disable interrupt respectively.  */
11
#ifndef ei
12
#define ei()  __asm__ __volatile__ ("sei" ::: "memory")
13
#endif
14
15
#ifndef di
16
#define di()  __asm__ __volatile__ ("cli" ::: "memory")
17
#endif
18
19
#endif


Da hab ich mir gedacht, gut, evtl. fehlt ja die Chip-Definition.
Also habe ich das Symbol manuell hinzugefügt (siehe bild).

Hat leider auch nichts gebracht.

von Stefan F. (Gast)


Lesenswert?

Eventuell musst ein Symbol mit dem Typ des Mikrocontrollers einstellen.

Vergleiche mit http://stefanfrings.de/avr_tools/index.html#ide
und
http://stefanfrings.de/avr_tools/index.html#eclipse

Da zeige ich das für den ATtiny2313, das Symbol heißt
1
__AVR_ATtiny2313__
Der avr-gcc Compiler braucht das nicht, weil er das Symbol automatisch 
entsprechend dem MCU Parameter setzt. Aber die IDE braucht es, weil die 
Header Dateien (wo die gesuchten Register definiert sind) bedingte 
Abschnitte enthalten, die davon abhängen.

von Claudio H (Gast)


Lesenswert?

Danke für deine Antwort.
Das Symbol habe ich gesetzt (siehe Bild nr 6)

Brachte leider keine Verbesserung…

von Stefan F. (Gast)


Lesenswert?

Claudio H schrieb:
> Das Symbol habe ich gesetzt (siehe Bild nr 6)

Ah OK. dieser Beitrag war noch nicht sichtbar, als ich antwortete.

von Claudio H (Gast)


Lesenswert?

Stimmt… wir waren zeitgleich 😊

von Stefan F. (Gast)



Lesenswert?

Anscheinend sind das allerdings Optionen für den Compiler-Aufruf. Für 
den Editor (eventuell Stichwort "Code Assistence") gibt es vielleicht 
noch woanders was.

Die angehängte Bildschirmfotos sind von der Eclipse basierten STM32 Cube 
IDE. Da gibt es 2 weitere relevanten Dialoge außerhalb des "C/C++ Build" 
Bereiches. Vermutlich hast du etwas ähnliches in deiner IDE.

von c-hater (Gast)


Lesenswert?

C. H. schrieb:

> Dabei wird PORTA nicht erkannt.
> Wenn ich auf xc.h gehe und dort versuche die <avr/io.h> mittels "Go to
> implementation" aufzurufen, geschieht einfach nichts.
>
> Kompilieren kann ich das ganze aber ohne Probleme.
> In den Einstellungen des Projekts sind die korrekten Pfade verlinkt.
> Ein separates hinzufügen under "Directories" hat nichts gebracht.
>
> Hat jemand eine Idee?

Geh' mal in den Projekteigenschaften auf "Device" und "Packs". Hier 
passiert das entscheidende für die IDE incl. VisualAssist.

Sprich: du hast bei der Anlage des Projektes wohl nicht das korrekte 
Target gewählt, sondern vermutlich einfach ein existierendes Projekt für 
ein anderes Target übernommen.

Wenn das so ist: einfach das passende Device und Pack wählen.

Falls nicht vorhanden, zuvor über Tools->Device Pack Manager 
runterladen. (Das erfordert dann allerdings einen Neustart des Studios, 
damit die heruntergeladenen Packs verfügbar werden).

Aber selbst, wenn das Device und ein passendes Pack bereits verfügbar 
sind, kann es nicht schaden, mit dem Device Pack Manager nachzuschauen, 
ob eventuell eine neuere Version des Packs existiert. Manchmal schafft 
es nämlich sogar Microchip, Bugs zu fixen...

von Dennis H. (Gast)


Lesenswert?

Vielleicht mal eine gescheite Umgebung benutzen. Microchip Studio 
bekommt es ja nichtmal hin Einrückung vernünftig zu machen. Ständig ein 
Leerzeichen drin und Tabs gehen garnicht.

von Claudio H (Gast)


Lesenswert?

Alternativen sind willkommen, solange dort au gedebuggt werden kann etc…

Was schlägst du vor?

von Marco H. (damarco)


Lesenswert?

Das Problem wird das er das Projekt ohne den Wizard angelegt hat. Mit 
diesem wird es auch funktionieren...

von Claudio H (Gast)


Lesenswert?

Nein, ich habe den Wizard verwendet

von c-hater (Gast)


Lesenswert?

Claudio H schrieb:

> Nein, ich habe den Wizard verwendet

Auch richtig verwendet?

Dann funktioniert das nämlich normalerweise problemlos.

Also zeig' doch einfach mal, was bei "Device" und "Pack" in den 
Projekteigenschaften steht...

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.