usart c18 step by step con compilatore xc8

11 Anni 2 Mesi fa #6 da StefA
Risposta da StefA al topic usart c18 step by step con compilatore xc8
Credo che in MPLAB Ide di default si abbiano i seguenti valori:
PLLDIV = 1
CPUDIV = OSC1_PLL2
e non settandoli nel main il compilatore prende quei valori.

In XC8 invece richiede tutte le configurazioni e il file fornito nella libreria ha settaggi diversi.

Farò qualche prova per vedere se ho detto solo boiate..se nel frattempo passerà di qui Mauro sicuramente farà luce.

@alpignolo: prova ad includere il file LCD_44780.h anche dal main e vedi se da errore o cambia qualcosa (sul progetto che non ti funziona il display).

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
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 2 Mesi fa #7 da StefA
Risposta da StefA al topic usart c18 step by step con compilatore xc8
ho fatto qualche prova.
Prendendo il tuo progetto, "USART_non funz.X", non ho modificato niente (tranne l'aver messo #pragma config CPUDIV = OSC1_PLL2) l'ho solo compilato e programmato e provandolo funziona come dovrebbe.

Ho anche provato pari pari il programma dell'esempio del libro e dopo aver incluso i percorsi, compilato e programmato, funziona anch'esso, lo allego tanto per..

File allegato:

Nome del file: usart_XC8_Ste.X.rar
Dimensione del file:143 KB


il problema potrebbe anche essere altrove..
la freedom II l'hai presa montata in kit o solo il pcb? nel qual caso che display monti?

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Allegati:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 2 Mesi fa #8 da alpignolo
Risposta da alpignolo al topic usart c18 step by step con compilatore xc8

Pinna ha scritto: Ciao Andrea, confermo quello che dici, almeno per quanto riguarda #pragma config CPUDIV=OSC1_PLL2. Non riuscivo a far funzionare l'usart con xc8 ma, dopo la tua osservazione, va che è una bellezza. Non solo, ho risolto un problema che mi assillava da molte settimane e per questo, con la mia benedizione, hai il mio grazie

Marcello

Ciao Marcello,Sono contento di esserti stato d'aiuto!!! :cheer:


StefA ha scritto: Credo che in MPLAB Ide di default si abbiano i seguenti valori:
PLLDIV = 1
CPUDIV = OSC1_PLL2
e non settandoli nel main il compilatore prende quei valori.

In XC8 invece richiede tutte le configurazioni e il file fornito nella libreria ha settaggi diversi.

Farò qualche prova per vedere se ho detto solo boiate..se nel frattempo passerà di qui Mauro sicuramente farà luce.

@alpignolo: prova ad includere il file LCD_44780.h anche dal main e vedi se da errore o cambia qualcosa (sul progetto che non ti funziona il display).

Ste

Ciao Ste grazie per le prove, condivido la tua osservazione sui settaggi mplab/mplabx.
Ho provato a includere anche il file LCD_44780.h e anche il delay.h ma il risultato è analogo


StefA ha scritto: ho fatto qualche prova.
Prendendo il tuo progetto, "USART_non funz.X", non ho modificato niente (tranne l'aver messo #pragma config CPUDIV = OSC1_PLL2) l'ho solo compilato e programmato e provandolo funziona come dovrebbe.

Ho anche provato pari pari il programma dell'esempio del libro e dopo aver incluso i percorsi, compilato e programmato, funziona anch'esso, lo allego tanto per..

File allegato:

Nome del file: usart_XC8_Ste.X.rar
Dimensione del file:143 KB


il problema potrebbe anche essere altrove..
la freedom II l'hai presa montata in kit o solo il pcb? nel qual caso che display monti?

Ste

Ho provato a compilare "USART_non funz.X" che ho postato cambiando solo #pragma config CPUDIV =OSC1_PLL2 ma non va. La freedom II l'ho presa già montata, adesso che ci penso però mi viene un dubbio, quando ho seguito il corso con i pic16 su settorezero ho avuto un problema con il display che ho risolto aumentando i ritardi nella libreria. Da qualche parte nel forum avevo letto che sulla versione 3 della freedom II sono state inserite delle resistenze di protezione che rallentano il segnale e quindi è necessario aumentare i ritardi.Ho raddoppiato i ritardi nel file LCD_44780.c ed ora "USART_non funz.X" funziona correttamente. Però mi sembra strano che la libreria LCD_44780 non vada bene per la v.3 della freedom 2 probabilmente ho un display un pò "sfortunato" .
Andrea

p.s. Ho provato il programma che hai postato, ho lo stesso problema con il display(che si risolve aumentando i ritardi)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alpignolo
  • Junior Member
  • Junior Member
Di più
11 Anni 2 Mesi fa #9 da StefA
Risposta da StefA al topic usart c18 step by step con compilatore xc8
anche io ho la versione 3 della Freedom II. :(

Se scrivi un programma che scrive solo una frase sul display funziona o no? (intendo senza modificare i tempi della libreria).

Immagino tu non abbia la possibilità di cambiare display e fare una prova...

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
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 2 Mesi fa - 11 Anni 2 Mesi fa #10 da alpignolo
Risposta da alpignolo al topic usart c18 step by step con compilatore xc8
:( allora sarà il display ma non ho modo di sostituirlo...

Ho provato con il programma che stampa Hello World:
con #pragma config CPUDIV=OSC3_PLL4 funziona,
se metto #pragma config CPUDIV=OSC1_PLL2 stampa caratteri strani (vedi foto allegata)
se metto #pragma config CPUDIV=OSC1_PLL2 e aggiungo il ritardo scritto in rosso nel file LCD_44780.c funziona correttamente (suppongo che il display in questione abbia bisogno di un tempo maggiore per l'enable)

void enable_pulse_LCD (void) {

LCD_E = 1;
delay_ms (2);
LCD_E = 0;
delay_ms (1);
delay_ms (1);

}


Allego anche una copia del programma hello world che ho utilizzato in configurazione #pragma config CPUDIV=OSC1_PLL2 e ritardo enable raddoppiato. I file di libreria sono sempre nella sottocartella librerie

Andrea
Allegati:
Ultima Modifica 11 Anni 2 Mesi fa da alpignolo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alpignolo
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login