- Messaggi: 25
- Ringraziamenti ricevuti 0
Chiarimenti pic18 C template - microchip embeded
Sto creando un template per il pic 18f4550 e la board che mi sono costruito.
Seguo questa guida:
www.electroyou.it/rusty/wiki/pierinpic18...tal+%28ElectroYou%29
Abbastanza chiara e ben corredata di figure e screen shot.
1)La prima domanda è: A che serve la funzione
void ConfigureOscillator(void)
che si trova già nel template fornito da microchip?? E a che serve abilitare il PLL in quella funzione, finora non ho mai dovuto abilitarlo e tutto funziona alla grande.....
2)Senza contare che l'XC8 mi dà un'errore proprio sulla stringa
OSCTUNEbits.PLLEN = 1;
con errore:
system.c:32: error: not a member of the struct/union ""
system.c:32: error: illegal conversion between types
3)Poi a che servono i define di FCY e SYS_FREQ??? Sono giunto alla conclusione che servano solo per poi riutilizzarle nel codice, e che non siano necessarie per il funzionamento del PIC.
4)Ultima cosa, questione code offset: sul pic che sto usando ho messo un bootloader USB (semplifica di molto le operazioni) non l'ho compilato io, ma un professore dell'università dove studio ( ricordate??? ) come posso capire che valore inserire nel code offset per non disturbare il bootloader di cui ho solo il file .hex???
Per il momento è tutto, spero di riuscire a fare funzionare il tutto, e cominciare a contribuire al forum, oltre che servirmene
P.S.: ho messo i numeri solo per dare un pò di ordine alle domande, e non fare confusione nelle risposte.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- ter2
- Autore della discussione
- Junior Member
brevi risposte:
1) La funzione ConfigureOscillator non credo sia standard ma legata all'applicazione.
2) Fai attenzione al PIC che usi tu e quello della scheda. Devono essere gli stessi per usare le stesse configurazioni. Non basta che siano della famiglia PIC18. Diversi PIC18 hanno nomi per i bit di configurazione differenti, anche per la stessa funzione.
3) guarda la documentazione della configurazione disponibile nella directory del compilatore che hai installato.
4) Se apri il file HEX lo dovresti capire. In particolare il file HEX e' in formato Intel. Puoi vedere il significato e formattazione dei byte su wikipedia. Se il prof ti ha dato il linker file modificato, lo puoi vedere anche da li.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Mi sto soffermando un pò sul boot loader (anche perchè se devo staccare e riattaccare il pic ancora una volta gli dò fuoco!!!!)
Il linker fornito dal mio professore è questo:
// FileName: rm18f4550.lkr
// Sample linker command file for 18F4550 with Bootloader
//
//Change History:
// Rev Date Description
// 1.0 10/30/2004 Initial release
LIBPATH .
FILES c018i.o
FILES clib.lib
FILES p18f4550.lib
CODEPAGE NAME=boot START=0x0 END=0x7FF PROTECTED
CODEPAGE NAME=vectors START=0x800 END=0x0x829 PROTECTED
CODEPAGE NAME=page START=0x82A END=0x7FFF
CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED
CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED
CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED
CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED
ACCESSBANK NAME=accessram START=0x0 END=0x5F
DATABANK NAME=gpr0 START=0x60 END=0xFF
DATABANK NAME=gpr1 START=0x100 END=0x1FF
DATABANK NAME=gpr2 START=0x200 END=0x2FF
DATABANK NAME=gpr3 START=0x300 END=0x3FF
DATABANK NAME=usb4 START=0x400 END=0x4FF PROTECTED
DATABANK NAME=usb5 START=0x500 END=0x5FF PROTECTED
DATABANK NAME=usb6 START=0x600 END=0x6FF PROTECTED
DATABANK NAME=usb7 START=0x700 END=0x7FF PROTECTED
ACCESSBANK NAME=accesssfr START=0xF60 END=0xFFF PROTECTED
SECTION NAME=CONFIG ROM=config
STACK SIZE=0x100 RAM=gpr3
SECTION NAME=USB_VARS RAM=usb4
Fermo restando che vorrei capire il senso di tutte le voci (magari mandatemi qualche link senza che il post diventi troppo lungo) non è che potete dirmi come impostare il code offset dell'MplabX per usare questo bootloader ??? Basta solo questo per avere un codice funzionante che non "sgomiti" con il bootloader ??
Che dirvi, grazie per la pazienza e per l'aiuto.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- ter2
- Autore della discussione
- Junior Member
- Messaggi: 25
- Ringraziamenti ricevuti 0
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
E se imposto in code offset nel codice posso lasciare i vettori di interruzione originali giusto?
Altra domandina: posso aggiungere questo linker al progetto Mplabx (e se si come) ? E quale delle due conviene usare (code offset o linker modificato)m
Si prega Accedi o Crea un account a partecipare alla conversazione.
- ter2
- Autore della discussione
- Junior Member
- Messaggi: 25
- Ringraziamenti ricevuti 0
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.