- Messaggi: 56
- Ringraziamenti ricevuti 0
help pik kit 3 e migrazione da c 18 a xc8
11 Anni 2 Mesi fa #1
da Panda4x4
help pik kit 3 e migrazione da c 18 a xc8 è stato creato da Panda4x4
ciao a tutti , sono nuovo del forum , mi sto approcciando alla programmazione dei pic, premetto che non ho nessuna base di programmazione .ho acquistato il pic kit 3 con demoboard a 45 pin con il pic 18f45k20, nei progetti esempio son tutti compilati con il c18 , e le priime 2 lezioni riesco a farle compilare , dalla terza in poi mi escono degli errori , il progetto originale per c18 e il seguente
/** C O N F I G U R A T I O N B I T S ******************************/
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "p18f46k20.h"
#include "delays.h"
/** V A R I A B L E S *************************************************/
#pragma udata // declare statically allocated uninitialized variables
unsigned char LED_Number; // 8-bit variable
/** D E C L A R A T I O N S *******************************************/
// declare constant data in program memory starting at address 0x180
#pragma romdata Lesson3_Table = 0x180
const rom unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80};
#pragma code // declare executable instructions
void main (void)
{
LED_Number = 0; // initialize
TRISD = 0b00000000; // PORTD bits 7:0 are all outputs (0)
while (1)
{
// use lookup table to output one LED on based on LED_Number value
LATD = LED_LookupTable[LED_Number];
LED_Number++; // rotate display by 1
if (LED_Number ==
LED_Number = 0; // go back to LED 0.
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
}
}
ho provato a modificare certi parametri seguendo il vostro tutorial di migrazione al xc8
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "p18f45k20.h"
#include <xc.h>
#include "delay.h"
#include "delay.c"
/** V A R I A B L E S *************************************************/
#pragma udata // declare statically allocated uninitialized variables
unsigned char LED_Number; // 8-bit variable
/** D E C L A R A T I O N S *******************************************/
// declare constant data in program memory starting at address 0x180
#pragma romdata Lesson3_Table = 0x180
const rom unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80};
#pragma code // declare executable instructions
int main (void)
{
LED_Number = 0; // initialize
TRISD = 0b00000000; // PORTD bits 7:0 are all outputs (0)
while (1)
{
// use lookup table to output one LED on based on LED_Number value
LATD = LED_LookupTable[LED_Number];
LED_Number++; // rotate display by 1
if (LED_Number ==
LED_Number = 0; // go back to LED 0.
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
}
}
ma purtroppo il risultato è questo..
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/iz1lbt/Desktop/hh.X'
make -f nbproject/Makefile-default.mk dist/default/production/hh.X.production.hex
make[2]: Entering directory `C:/Users/iz1lbt/Desktop/hh.X'
"C:\Program Files\Microchip\xc8\v1.12\bin\xc8.exe" --pass1 --chip=18F45K20 -Q -G --asmlist --double=32 --float=32 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=free -P -N255 -I"C:/Program Files/Microchip/xc8" --warn=0 --cci --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -obuild/default/production/newmain.p1 newmain.c
C:\Program Files\Microchip\xc8\v1.12\include\htc.h:5: warning: #warning: "CCI projects should use the top-level support file xc.h\nIncluding xc.h instead"
newmain.c:19: error: can't open include file "delay.h": No such file or directory
(908) exit status = 1
make[2]: Leaving directory `C:/Users/iz1lbt/Desktop/hh.X'
make[2]: *** [build/default/production/newmain.p1] Error 1
make[1]: Leaving directory `C:/Users/iz1lbt/Desktop/hh.X'
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
ragazzi per favore mi dite cosa sto sbagliando ??
grazie mille in anticipo
/** C O N F I G U R A T I O N B I T S ******************************/
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "p18f46k20.h"
#include "delays.h"
/** V A R I A B L E S *************************************************/
#pragma udata // declare statically allocated uninitialized variables
unsigned char LED_Number; // 8-bit variable
/** D E C L A R A T I O N S *******************************************/
// declare constant data in program memory starting at address 0x180
#pragma romdata Lesson3_Table = 0x180
const rom unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80};
#pragma code // declare executable instructions
void main (void)
{
LED_Number = 0; // initialize
TRISD = 0b00000000; // PORTD bits 7:0 are all outputs (0)
while (1)
{
// use lookup table to output one LED on based on LED_Number value
LATD = LED_LookupTable[LED_Number];
LED_Number++; // rotate display by 1
if (LED_Number ==
LED_Number = 0; // go back to LED 0.
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
}
}
ho provato a modificare certi parametri seguendo il vostro tutorial di migrazione al xc8
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "p18f45k20.h"
#include <xc.h>
#include "delay.h"
#include "delay.c"
/** V A R I A B L E S *************************************************/
#pragma udata // declare statically allocated uninitialized variables
unsigned char LED_Number; // 8-bit variable
/** D E C L A R A T I O N S *******************************************/
// declare constant data in program memory starting at address 0x180
#pragma romdata Lesson3_Table = 0x180
const rom unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80};
#pragma code // declare executable instructions
int main (void)
{
LED_Number = 0; // initialize
TRISD = 0b00000000; // PORTD bits 7:0 are all outputs (0)
while (1)
{
// use lookup table to output one LED on based on LED_Number value
LATD = LED_LookupTable[LED_Number];
LED_Number++; // rotate display by 1
if (LED_Number ==
LED_Number = 0; // go back to LED 0.
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
}
}
ma purtroppo il risultato è questo..
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/iz1lbt/Desktop/hh.X'
make -f nbproject/Makefile-default.mk dist/default/production/hh.X.production.hex
make[2]: Entering directory `C:/Users/iz1lbt/Desktop/hh.X'
"C:\Program Files\Microchip\xc8\v1.12\bin\xc8.exe" --pass1 --chip=18F45K20 -Q -G --asmlist --double=32 --float=32 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=free -P -N255 -I"C:/Program Files/Microchip/xc8" --warn=0 --cci --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -obuild/default/production/newmain.p1 newmain.c
C:\Program Files\Microchip\xc8\v1.12\include\htc.h:5: warning: #warning: "CCI projects should use the top-level support file xc.h\nIncluding xc.h instead"
newmain.c:19: error: can't open include file "delay.h": No such file or directory
(908) exit status = 1
make[2]: Leaving directory `C:/Users/iz1lbt/Desktop/hh.X'
make[2]: *** [build/default/production/newmain.p1] Error 1
make[1]: Leaving directory `C:/Users/iz1lbt/Desktop/hh.X'
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
ragazzi per favore mi dite cosa sto sbagliando ??
grazie mille in anticipo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
11 Anni 2 Mesi fa #2
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic help pik kit 3 e migrazione da c 18 a xc8
non conosco quel tipo di microcontrollore e sto iniziando anche io a convertirmi a mplabx e xc8 però, è buona regola, mettere sempre #include <xc.h> prima di tutti gli altri include. Detto questo, il compilatore non ti trova il file delay.h perchè, essendo racchiuso tra le virgolette, presuppone che esso sia presente all'interno della cartella del progetto (insieme al main, per intenderci). Allora, se è presente nella cartella del progetto, apri il file delay.c e cambia #include <delay.h> con #include "delay.h", in caso contrario hai due soluzioni: o lo copi direttamente oppure imposti i percorsi giusti nel compilatore...
Marcello
Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
11 Anni 2 Mesi fa #3
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic help pik kit 3 e migrazione da c 18 a xc8
nella fretta mi era sfuggito prima: sembra che i file delay.c e delay.h siano entrambi presenti nella cartella del tuo progetto. Se è così, commenta o cancella direttamente #include <delay.h> dal file delay.c . E' quella riga che ti comporta l'errore.
fammi sapere
fammi sapere
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
11 Anni 2 Mesi fa #4
da Panda4x4
Risposta da Panda4x4 al topic help pik kit 3 e migrazione da c 18 a xc8
grazie marcello, non sapevo ancora che le virgolette intendessero la provenienza del file , ma perche c'e questa esigenza di prendere questa configurazione al di fuori del main c ?
include è un bit di configurazione giusto?
scusa il mio livello attuale ...
ora provo a fare come dici
grazie mille !
include è un bit di configurazione giusto?
scusa il mio livello attuale ...
ora provo a fare come dici
grazie mille !
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 56
- Ringraziamenti ricevuti 0
11 Anni 2 Mesi fa #5
da Panda4x4
Risposta da Panda4x4 al topic help pik kit 3 e migrazione da c 18 a xc8
ho provato atoglierli definitivamente dal main c questi due
#include <delay.h>
#include <delay.c>
intendevi fare cosi?
#include <delay.h>
#include <delay.c>
intendevi fare cosi?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 56
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.