Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

XC8 e UART per PIC18F: solo in debug?!?

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

1
voti

[1] XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto UtentePaolino » 1 giu 2014, 13:43

Ciao a tutti.
Sto lavorando su un progetto che impiega, fra l'altro, la porta seriale (libreria plib/usart.h di XC8 ver. 1.31).
Si tratta di un PIC18F25k20 configurato per lavorare a 8MHz con oscillatore interno.

Ora, date un'occhiata a questa sezione di codice:

Codice: Seleziona tutto
            WriteUSART('X');
            sprintf(bufTx,"State: %2d\r\n", stato);
            putsUSART(bufTx);
            putrsUSART("Ciao\r\n");


Sul programma terminale ho la scrittura di tutto quanto ('X', State: valore_dello_stato, "Ciao") solamente se impiego il dispositivo in debug, con PICKit3 :shock:
In modalità release, invece, vedo solamente 'X'.

Evidentemente mi sto perdendo qualcosa per strada ma a continuare a guardare il codice, davvero non ne vengo fuori. #-o

Any ideas?

Grazie.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

1
voti

[2] Re: XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto UtenteWALTERmwp » 1 giu 2014, 15:43

Ciao Foto UtentePaolino, ... se un "guru" viene a chiedere consiglio ... meglio muoversi con i "piedi di piombo".
No, nessuna idea ... o meglio, proverei a dare un'occhiata al codice assembler prodotto dal compilatore; mi rendo conto, però, che questo potrebbe costare tempo e pazienza.
Si potrebbe immaginare che il PICKit3 rediriga l'output di alcune funzioni (put_) senza la necessità di una specifica; in tal caso, una volta tolto il dispositivo di debug, non si vedrebbe più nulla.
La "Write", invece, sembrerebbe appunto strutturata diversamente.
Immagino che potrebbe passare per un'ipotesi un po' "balzana" ma, in mancanza d'altro ... almeno per ora ...
Continuando su questa falsa riga, un po' speculativa, si potrebbe verificare l'esistenza, nel compilatore, di una direttiva a riguardo.
Mi rendo conto che è poco, e i vetri sono scivolosi, però ...

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8986
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

1
voti

[3] Re: XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto UtentePaolino » 1 giu 2014, 20:19

Grazie, Foto UtenteWALTERmwp per la risposta.
Pensare di dare un'occhiata al codice generato è senz'altro una buona idea, ma ammetto che mi scoraggia e non poco... :cry: Non foss'altro, sono un po' incasinato in questo periodo e la testa a volte proprio non c'è.

La cosa strana che mi lascia davvero perplesso è che sembra andare in tilt sia parte delle funzioni UART ma anche una parte di stdio.h (sprintf è una funzione di quell'header).

Lo so, dovrei indagare con più attenzione e sviscerare il problema. Ma dato che (perdona la ripetizione) sono un po' cotto, punterei ad un work-around, magari scrivendomi parte delle funzioni di scrittura delle stringhe.

In alternativa, proverò col medesimo hardware, a scrivere un programmino che impieghi solamente la seriale, così da cercare di escludere altre variabili.

Grazie ancora.

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

4
voti

[4] Re: XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto UtentePaolino » 2 giu 2014, 9:13

Per completezza, informo che ho risolto il problema. \O-<
Dopo il post con Foto UtenteWALTERmwp, ho letto e riletto il codice per l'ennesima volta senza trovarci nulla di strano finché non mi sono accorto un banale ma madornale errore: i configuration bits, messi in un file a parte, venivano inseriti nel progetto non all'inizio bensì dopo aver incluso qualche header #-o

Mea culpa, quindi. Quando il progetto è cresciuto un po', non mi sono accorto di aver inavvertitamente spostato #include "confbits.h" troppo in avanti... :-"

Ora procedo con il resto. :ok:

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[5] Re: XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto UtenteWALTERmwp » 2 giu 2014, 12:49

Grazie @Paolino per la tua segnalazione, un particolare che così potrò (potremo) tenere presente in future sperimentazioni.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8986
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[6] Re: XC8 e UART per PIC18F: solo in debug?!?

Messaggioda Foto Utentethexeno » 2 giu 2014, 23:32

Voi esperti dovreste avere molti più problemi. Non hai idea delle cose che noi nonguru impariamo preventivamente...
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti