PIC16LF1509 undefined identifier error

Gast #5258057
Lesenswert?
• ▲
▼
Hallo Leute,
ich bin Anfänger bei der Microcontroller Programmierung. Ich habe schon 
ein wenig mit einem Baseline Chip programmiert (PIC12F508). Jetzt wage 
ich mich an die Midrange Klasse ran. Um eine LED zum leuchten zu bringen 
habe ich ein C-Programm erstellt.
1
#pragma config FOSC = ECM      // Oscillator Selection bits (internal RC oscillator)
2
#pragma config WDTE = OFF        // Watchdog Timer Enable bit (WDT disabled)
3
#pragma config CP = OFF         // Code Protection bit (Code protection off)
4
#pragma config MCLRE = ON       // GP3/MCLR Pin Function Select bit (GP3/MCLR pin function is MCLR)
5
#pragma config BOREN = OFF      // Brown-out off
6
#pragma config PWRTE = OFF      // Power-up Timer off
7
#include <xc.h>
8

9
/***** CONFIGURATION *****/
10
// ext reset, no code protect, no brownout detect, no watchdog,
11
// power-up timer enabled, int RC clock
12
//__CONFIG(MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & WDTE_OFF & 
13
//         PWRTE_OFF & FOSC_INTRCIO);
14

15

16
/***** MAIN PROGRAM *****/
17
void main()
18
{
19
    //*** Initialisation  
20
    
21
    // configure port  
22
    TRISIO = 0;       // configure GP1 (only) as an output
23
    GPIObits.GP1 = 1;       // set GP1 high
24

25

26
    //*** Main loop
27
    for (;;)
28
    {                       // loop forever
29
        ;
30
    }
31
}
Dabei bekomme ich folgende Fehlermeldung und ich weiß nicht warum.

make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/Max/MIDRANGE.X'
make -f nbproject/Makefile-default.mk 
dist/default/production/MIDRANGE.X.production.hex
make[2]: Entering directory 'C:/Users/Max/MIDRANGE.X'
"C:\Program Files (x86)\Microchip\xc8\v1.45\bin\xc8.exe" --pass1 
--chip=16LF1509 -Q -G --double=24 --float=24 
--opt=+asm,+asmfile,-speed,+space,-debug,-local --addrqual=ignore 
--mode=free -P -N255 --warn=-3 --asmlist -DXPRJ_default=default 
--summary=default,-psect,-class,+mem,-hex,-file 
--output=default,-inhx032 
--runtime=default,+clear,+init,-keep,-no_startup,-osccal,-resetbits,-dow 
nload,-stackcall,+clib  --output=-mcof,+elf:multilocs 
--stack=compiled:auto:auto "--errformat=%f:%l: error: (%n) %s" 
"--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: 
(%n) %s" -obuild/default/production/Main.p1 Main.c
Main.c:39: error: (0) Unknown macro (CPD_OFF) used in __CONFIG()
Main.c:39: error: (0) Unknown macro (FOSC_INTRCIO) used in __CONFIG()
Main.c:49: error: (192) undefined identifier "TRISIO"
Main.c:50: error: (192) undefined identifier "GPIObits"
Main.c:50: error: (196) struct/union required
(908) exit status = 1
nbproject/Makefile-default.mk:106: recipe for target 
'build/default/production/Main.p1' failed
make[2]: Leaving directory 'C:/Users/Max/MIDRANGE.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/Max/MIDRANGE.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/default/production/Main.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 556ms)

Ich benutzte die MLAB X IDE v. 4.05 und den XC8 v. 1.45 Compiler.
Kann mir jemand einen Hinweis geben, wie ich die Fehler beheben kann.

Viele Grüße
Gast #5258241
Lesenswert?
• ▲
▼
> #include <xc.h>
Sowas gehoert nach gaaaanz oben.

Beratungsmuster:
1
#pragma config FOSC=INTOSC, CLKOUTEN=OFF, WDTE=OFF, PWRTE=OFF, BOREN=OFF, IESO=OFF, FCMEN=OFF
2
#pragma config LVP=OFF

Wenn du schon Zeug irgendwo zusammenkopierst ohne das
Datenblatt/Compilerhandbuch zu lesen, wirst du kaum in
der Lage sein, mal erfolgreich selber etwas zu Ende zu
bringen.

Die passenden Portnamen/bits such mal selber...
#5258334
Lesenswert?
• ▲
▼
Toxic schrieb:
> Sehenswert fuer jeden Pic-Anfaenger !

Oh ja ;-) habe ich schon mal angeschaut, aber wieder vergessen. Muss ich 
unbedingt in meine Link Liste aufnehmen!

@Seto
Wenn du von den netten Hinweisen hier noch nicht abgeschreckt bist, dann 
beiß dich durch, akzeptiere, dass jeder Controller sein eigenes 
Datasheet hat, welches gelesen werden muss. Dann fragst du am besten so, 
dass man erkennen kann, dass du schon versucht hast das Datasheet zu 
Rate zu ziehen ;-)

Das mit den Config bits ist auch nicht mehr ganz so sperrig, wenn man 
die IDE richtig nutzt.
http://microchipdeveloper.com/mplabx:view-and-set-configuration-bits
Datasheet muss man natürlich trotzdem lesen....
Gast #5258661
Lesenswert?
• ▲
▼
Danke für die vielen Hinweise. Den Code habe ich aus einem Tutorial, ist 
allerdings für einen anderen PIC.  Auf die verschiedenen TRIS Register 
bin ich gestern auch noch gestossen ;)
Werde mir die Tutorials nochmal anschauen :D

Viele Grüsse

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.