jimmy208 Inserito: 27 aprile 2010 Segnala Share Inserito: 27 aprile 2010 Un saluto a tutti gli utenti del forum.Premetto che sono alle prime armi con questo tipo di pic e anche con questo compilatore e vorrei esporvi il mio problema sulla compilazione in C utilizzanco MikroC.In poche parole dovrei ricavare il file HEX da un listato in C per un progetto trovato su internet.Ho provato diverse volte ma non riesco anche perchè non conosco affatto il compilatore.Qualcuno è in grado di compilarlo per me?Il progetto è questo: http://www.vermontficks.org/datalog5c.htmCiao Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 aprile 2010 Segnala Share Inserita: 27 aprile 2010 Tu disponi del compilatore MikroC? Se la risposta è si cosi ti dice dopo la compilazione? Da degli errori? Che tipo di errori?Se non da errori dovresti avere in uiscita un file HEX pronto per essere caricato nel pic Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 28 aprile 2010 Autore Segnala Share Inserita: 28 aprile 2010 Grazie per la risposta.Comunque avrei una certa urgenza ad avere il file.HEX per il momento, magari dopo potrò approfondire se non è troppo complicato.Magari è solo problema di settaggio del programma?Gli errori sono:Can't open include file " 16f876.h " #include < 16F876.H >prova.c:47: error: Unknown #directive "device" #device ADC=10prova.c:48: error: Can't open include file " jonsinc.h " #include < jonsinc.h >prova.c:50: error: Unknown #directive "fuses" #fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, NOWRTprova.c:98: error: Unknown #directive "use" #use delay ( clock=4000000 )prova.c:99: error: Unknown #directive "use" #use standard_io ( A )prova.c:100: error: Unknown #directive "use" #use standard_io ( B )prova.c:101: error: Unknown #directive "use" #use standard_io ( C )prova.c:102: error: Unknown #directive "use" #use rs232 ( baud=9600, xmit=PIN_B3 )prova.c:103: error: Unknown #directive "use" #use i2c ( master, scl=EEPROM_SCL, sda=EEPROM_SDA )prova.c:133: error: Unknown #directive "int_rtcc" #int_rtcc11 errors in preprocessor. Link al commento Condividi su altri siti More sharing options...
mf2hd Inserita: 28 aprile 2010 Segnala Share Inserita: 28 aprile 2010 ciao, il codice non e' per il mikroc e gli errori che ti mostra dicono infatti che gli mancano dei pezzi per poterlo compilare (es. "jonsinc.h").Nella pagina dello stesso sito:http://www.vermontficks.org/pic.htmall' inizio viene citato il compilatore della CCS e l' autore specifica che usa questo nei sorgenti:"CCS supplies the C compilers that are used to compile my source code." Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 30 aprile 2010 Autore Segnala Share Inserita: 30 aprile 2010 Ci ho provato in tutti i modi ma non riesco proprio.Ognuno ha i propri limiti.Comunque se qualcuno è in grado di compilarlo per me e se è disposto ad inviarmelo lo ringrazio tanto.Diversamente non so cosa fare.Grazie a tutti Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 30 aprile 2010 Segnala Share Inserita: 30 aprile 2010 Potresti e dovresti fare l'unica cosa corretta: imparare ad usare il "C".Anche se qualcuno lo compila per te e te lo fa funzionare cosa te ne fai? Non penserai forse di prendere il file HEX buttarlo sul PIC e poi tutto fila liscio come l'olio? Qualche messa a punto dovrai sempre farla, se non sai metterci le mani come farai? Link al commento Condividi su altri siti More sharing options...
Nikiki Inserita: 6 maggio 2010 Segnala Share Inserita: 6 maggio 2010 non è un problema di settaggi, ma di compilatore sbagliato.Il tuo compilatore non è riesce ad interpretare le direttive che vedi tra gli errori.Ho provato ad inserire il sorgente in un progetto per vedere se lo compilava al volo, ma ho ottenuto gli stessi tuoi errori.Alcuni si possono correggere velocemente, ed è quello che ho provato a fare, ma una volta risolti i problemi dei file da includere, come il PIC16F876.inc e il jonsinc.h (che si può scaricare dal sito), sono nati moltissimi altri errori, perchè le definizioni usate dal suo .inc sono diverse da quelle standard microchip e bisognerebbe correggerle tutte (oppure avere il file .inc giusto).Quindi ti consiglio di cercare il compilatore usato dall'autore, fatto ciò sono sicuro che tutto funzionerà, anche se non sei espertissimo... Io ci ho provato... mi dispiace. Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 14 maggio 2010 Autore Segnala Share Inserita: 14 maggio 2010 Ho provato a scaricare la versione free del CCS ma gli errori sono sempre presenti.Credo che tale versione sia incompleta per la compilazione del 16F876.Servirebbe qualcuno che usa quel compilatore.In attesa di ulteriori risvolti ringrazio tutti per la disponibilità Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 maggio 2010 Segnala Share Inserita: 14 maggio 2010 Io uso regolarmente CCS (strano che ci sia una versione free non crackata ) da anni. Se ci sono errori di compilazione è perchè sono stati commessi.Il 16F876 è talmente consolidato da essere obsoleto, non ci sono bugs nei compilatori per questo micro.Devi lavorare con metodo e pazienza. Andare a vedere il primo errore segnalato ed emendarlo, poi ricompilare. Se l'errore è stato effettivamente emendato sarà scomparso e, probabilmente, ne saranno scomparsi anche altri. RIpetere l'operazione sino ad emendare tutti gli errori.Non c'è altra via, non esistono bacchette magiche o trucchi. Solo lavoro serio e sudore, metaforico. Link al commento Condividi su altri siti More sharing options...
Nikiki Inserita: 14 maggio 2010 Segnala Share Inserita: 14 maggio 2010 Assicurati che che carichi i file inclusi all'inizio del sorgente (.inc .h) nel .inc ci sono tutte le definizioni, e se non lo carica, tutte le varie costanti presenti nel sorgente saranno parole messe li a caso.ad esempio l'errore "undefined identifier: PIN_C0" significa che la costante PIN_C0 non è stata definita e quindi per il compilatore non significa niente. Se hai errori di questo tipo significa che il PIC16F876.inc non viene caricato oppure stai caricando un file che non ha queste definizioni. Link al commento Condividi su altri siti More sharing options...
doctordf Inserita: 14 maggio 2010 Segnala Share Inserita: 14 maggio 2010 (modificato) Gli errori sono chiarissimi, e direi abbastanza... passatemi il termine... da principiante Can't open include file " 16f876.h "prova.c:48: error: Can't open include file " jonsinc.h "è evidente che non trova il file, gli spazi non è che sono acqua fresca!#include < 16F876.H >#include < jonsinc.h >così è corretto:#include <16F876.H>#include <jonsinc.h>se correggi i due errori riuscirai anche tu a compilarlo, provaci; al limite te lo mando io Modificato: 14 maggio 2010 da doctordf Link al commento Condividi su altri siti More sharing options...
Nikiki Inserita: 15 maggio 2010 Segnala Share Inserita: 15 maggio 2010 ... se non hai il file header che ha usato l'autore... hai voglia a togliere gli spazi, io ho usato quello fornito con MPLAB e non c'è una definizione che torna. Link al commento Condividi su altri siti More sharing options...
doctordf Inserita: 15 maggio 2010 Segnala Share Inserita: 15 maggio 2010 (modificato) Guarda che i compilatori non danno messaggi a vanvera,- Can't open include file " 16f876.h " - vuol dire che il file non lo trova, non che il file non è quello giusto, il compilatore non è in grado di stabilire se un file va bene o no, si limita a leggerne le istruzioni.E comunque con gli spazi prima e dopo il nome del file non compilerai MAI.Ecco come fare:jonsinc.h - lo scarichi dal sito medesimo http://www.vermontficks.org/jonsinc.zip16F876.H - ne trovi quanti ne vuoi, in rete ma lo ha anche il CCS1- Metti nella stessa cartella, per comodità, il file sorgente, il file 16F876.H e il file jonsinc.h2 - Lanci il CCS3 - crei un nuovo progetto con il file sorgente4 - includi (include files) i due file 16F876.H e jonsinc.h o la cartella che contiene il tutto5 - togli gli spazi di cui sopra6 - compiliputroppo in questo forum non si riesce ad allegare l'hex... Modificato: 15 maggio 2010 da doctordf Link al commento Condividi su altri siti More sharing options...
Nikiki Inserita: 15 maggio 2010 Segnala Share Inserita: 15 maggio 2010 Io lo carico bene il file header ma quello che ho io ha le definizioni completamente diverse, inoltre nel sorgente ci sono troppe direttive che MPLAB non digerisce, dovrei fare troppe modifiche (io uso il compilatore Hi-Tech su MPLAB).Se a te lo compila prova a postare l'ascii... farà un copia-incolla. così lo fai contento... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 15 maggio 2010 Segnala Share Inserita: 15 maggio 2010 Devi appoggiarlo su un sito di repository e poi allegare il link Link al commento Condividi su altri siti More sharing options...
doctordf Inserita: 15 maggio 2010 Segnala Share Inserita: 15 maggio 2010 eh vabbè... eccolo:http://hotfile.com/dl/43009301/5f6cc34/source.zip.html Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 22 maggio 2010 Autore Segnala Share Inserita: 22 maggio 2010 In che modo possiamo ovviare? Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 22 maggio 2010 Autore Segnala Share Inserita: 22 maggio 2010 Scusete non avevo letto le ultime.Vi faccio sapere se vàGrazie Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 3 giugno 2010 Autore Segnala Share Inserita: 3 giugno 2010 Ho avuto la possibilità di provare il circuito e posso confermare che funziona tranneper l'interfaccia dati che non ho provato e la memorizzazione dei dati su eprom che sembra non gestirla correttamente. Ho l'impressione che il pic non riesca a cancellare i dati presenti sull'eprom durante il reset.Vi terrò informati su eventuali risvolti.Se qualcuno ha già avuto lo stesso problema potrebbe essere di aiuto. Link al commento Condividi su altri siti More sharing options...
Nikiki Inserita: 4 giugno 2010 Segnala Share Inserita: 4 giugno 2010 l'eeprom non si cancella al reset, a meno che non ci sia una sequenza di istruzioni (tipo un loop) fatto apposta allo scopo. Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 4 giugno 2010 Autore Segnala Share Inserita: 4 giugno 2010 Il circuito prevede un menù di reset delle letture acquisite.In questo modo dovrebbe porre tutti i valori dell'eprom a FF o altro secondo programma.Il problema è che effettuando nuovamente acquisizioni i valori letti sono sempre gli stessi dei precedenti o comunque relativi a dei dati già immagazinati sull'eprom.In poche parole il pic legge i dati dall'eprom però non è in grado di cancellarli o riscriverli. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 4 giugno 2010 Segnala Share Inserita: 4 giugno 2010 Hai controllato la funzione di scrittura della EEPROM? Usi una funzione di libreria od una ad hoc? Link al commento Condividi su altri siti More sharing options...
jimmy208 Inserita: 7 giugno 2010 Autore Segnala Share Inserita: 7 giugno 2010 Ho rifatto alcune prove e posso confermare che la gestione dell'eeprom non è corretta.Ho pure verificato le forme d'onda SCL ed SDA con i seguenti risultati che desidererei commentare:1. Il segnale SCL dura per tutto il periodo di lettura/scrittura e non oltre2. Il segnale SCL presenta delle perdite di un solo bit ogni 8 nel senso che dopo 8 periodi transizioni H/L si presenta un L/L3. Il segnale SDA non sembra conforme alle specifiche dei data sheet delle eeprom, in particolare la sequenza dei Byte di scrittura/lettura e sfalsata. In particolare il primo Byte OK, secondo e terzo Byte sempre fissi con un solo bit a 1, quarto Byte variabile incrementale (presumo che sia quello delle allocazioni di memoria) quinto Byte variabile con il variare dell'ingresso ADC.Possibile che la libreria di compilazione per IC2 non sia corretta?Scusate se mi sono addentrato nei dettagli ma come potete notare ci tengo a far funzionare il circuito al 100%. Per rispondere a Livio vorrei sottolineare la mia completa ignoranza su programmazione in C e una buona conoscenza del resto di elettronica.Purtroppo non ne ho idea della funzione di scrittura dell'eeprom credo che debba essere gestita dalla libreria quindi chiedo a doctordf se è più afferrato in materia una sua opinione.p.s. Un commento aggiuntivo al circuitoTrasmissione seriale OK con ottimo sistema di visualizzazione dati memorizzati Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora