Microchip Studio - Schlüsselwörter werden nicht erkannt

OP #6823735
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.
Angehängte Dateien:
Gast #6823754
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?
OP #6823762
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.
Angehängte Dateien:
Gast #6823763
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.
Gast #6824009
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.
Gast #6824118
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.