- Messaggi: 1222
- Ringraziamenti ricevuti 104
help pik kit 3 e migrazione da c 18 a xc8
XC8 è il nuovo compilatore della microchip, nato dall'unione di C18 e Hitech C, per cui se un programma è scritto in C18 deve essere adattato per poter funzionare con il compilatore XC8.Ok , ecco uso mplab x col xc8 gli esempi sono i Sample project che ci sono sul sito della microchip che da quanto ho capito son compilati col c18.
la libreria è un file separato dal main in cui ci sono scritte delle funzioni, ad esempio la seriale, se le includi nel progetto poi dal main potrai richiamare queste funzioni ed usarle. Esempio, aggiungi i file per la seriale al progetto..Le librerie laurtec dovrò installarle in mplabX ? Non ho ancora idea cosa realmente siano
Le librerie sono funzioni o pezzi di programmi esempio timer ecc? Giusto?
#include <usart.h>
#include <usart.c>
poi nel main scrivi sulla resiale semplicemente scrivendo..
putrsUSART ("Ciao mondo");
senza che tu sappia minimamente come funziona la seriale
Ci sono librerie per molte cose, ci sono quelle che si installano insieme al programma\compilatore che installi, e poi ce ne sono altre come quelle di Mauro da aggiungere a mano; basta copiare i file da qualche parte e dire al compilatore dove andarli a cercare.
una libreria ha di solito (quando ti forniscono i file sorgente come fa Mauro) due file, un file libreria.h e un file libreria.c, nella cartella header ci sono solitamente i file.h delle librerie. La Cartella makefile non la ricordo, dov'è?Ma le cartelle tipo header makefile a cosa servono ?
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Altro quesito ma solo per riflettere ma si può fare a meno della libreria e scrivere tutto sul mani c?
Scusare se non mi pongo questi principi non riesco a capire ed andare avanti..
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
- Messaggi: 56
- Ringraziamenti ricevuti 0
www.laurtec.it/brief-notes-74/programmazione-pic
detto questo, rispondo alle tue domande:
se vuoi, per esempio, utilizzare un interrupt, hai bisogno di inserire nel tuo progetto il file timers.h. Hai due possibilità: la prima è che imposti i percorsi in modo tale che il compilatore vada a cercarselo per i fatti suoi (quindi nel main scriverai #include <timers.h>; la seconda è che lo copi nella cartella del tuo progetto (nel main scriverai #include "timers.h"). La differenza tra <> e "" è che con il primo il compilatore lo cerca all'interno del percorso che gli hai assegnato, con il secondo lo cerca all'interno della cartella del tuo progetto.
Per rispondere alla tua seconda domanda ti faccio questo esempio: devi scrivere due programmi finalizzati a scopi diversi ma che fanno entrambi uso dell'interrupt. Supponiamo che l'interrupt avvenga ogni secondo in entrambi i casi (cioè un timer che avanza ogni secondo). Il primo programma è un orologio, il secondo deve controllare la temperatura dell'acquario. Sia nel primo che nel secondo caso il timer deve scandire un secondo, quindi si evince che la routine sarà la stessa (cioè il file timers.h che può gestire il tutto). Domanda: che senso ha riscrivere la stessa, identica routine in due programmi diversi quando, una volta che è scritta, la puoi utilizzare per ogni tuo progetto? Ecco il senso dei file header (ovvero .h). In pratica, hai una sorta di portabilità: devo progettare un orologio? utilizzo un file già pronto e lo inserisco nel mio progetto adattando il main alla mia esigenza. Devo controllare la temperatura dell'acquario ogni secondo? faccio la stessa cosa. In definitiva risparmio tempo. E' questo il vantaggio delle routine già scritte, che possono essere usate per esigenze diverse...
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
- Messaggi: 1010
- Ringraziamenti ricevuti 107
ora ho scaricato le librerie laurtec che mi avevi passato il link, tutta la cartella
la ho copiata nella cartella microchip/xc8/lib/.
c'erano gia dei file con estensione LPP
e giusto metterla li?
volevo postare la cartella del progetto come mi avevi chiesto , come faccio?
con l'opzione aggiungi file riesco solo a mettere un file di quelle cartelle ..
altra cosa questa era la configurazione del pic 18f45k20 scritta nel programma esempio per il c18..
/** 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
#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
quando provo a compilarlo ovviamente mi da degli errori di configurazione .
ho capito che nelle librerie laurtec ci sono le configurazioni gia fatte che basta richiamarle nel seguente modo
#include "PIC18F4550_config.h"
in questo esempio si considera un'altro pic rispetto al mio ,esiste una configurazione gia fatta per il pic 18f45k20?
il mio problema attuale e installare le librerie ...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
- Messaggi: 56
- Ringraziamenti ricevuti 0
ok ora compilando errori sulla configurazione non me ne da piu
ma non digerisce qualcosa sul programma ...
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/iz1lbt/Desktop/prova.X'
make -f nbproject/Makefile-default.mk dist/default/production/prova.X.production.hex
make[2]: Entering directory `C:/Users/iz1lbt/Desktop/prova.X'
"C:\Program Files\Microchip\xc8\v1.12\bin\xc8.exe" --pass1 --chip=18F45K20 -Q -G --asmlist --double=24 --float=24 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=free -P -N255 -I"C:/Program Files/Microchip/xc8/v1.12/lib" -I"C:/Program Files/Microchip/xc8/v1.12/include" -I"C:/Program Files/Microchip/xc8/v1.12/lib" --warn=0 --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
newmain.c:30: error: undefined identifier "LED_Number"
newmain.c:34: error: undefined identifier "LED_LookupTable"
newmain.c:34: error: pointer required
newmain.c:34: error: pointer required
make[2]: Leaving directory `C:/Users/iz1lbt/Desktop/prova.X'
make[1]: Leaving directory `C:/Users/iz1lbt/Desktop/prova.X'
(908) exit status = 1
make[2]: *** [build/default/production/newmain.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 437ms)
in pratica ogni stringa nel programma ha il pallino rosso
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
- Messaggi: 56
- Ringraziamenti ricevuti 0
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.