Routine di delay non applica il giusto ritardo.

11 Anni 5 Mesi fa #6 da velvettiere
Risposta da velvettiere al topic Routine di delay non applica il giusto ritardo.
Ho cambiato il quarzo ma non è cambiato nulla, allora ho provato ad aggiungere questa config:

#pragma config FOSC = HS
#pragma config PLLDIV = 5

Teoricamente però andava fatto

#pragma config FOSC = HSPLL_HS
#pragma config PLLDIV = 5

Bhè....le stranezze mi perseguitano perchè nel primo modo oscilla a 1 secondo correttamente, nel secondo modo oscilla a 500 ms. roba da matti....

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

  • velvettiere
  • Senior Member
  • Senior Member
Di più
11 Anni 5 Mesi fa #7 da StefA
prova a programmare il pic con uno degli esempi di Mauro, carica direttamente il file .hex. Poi prova a prendere un progetto di Mauro e compilarlo e programmarlo sul pic e vediamo se funziona correttamente.
PLLDIV non dovresti impostarlo.

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 5 Mesi fa #8 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Routine di delay non applica il giusto ritardo.
Ciao,

l'istruzione

#pragma config PLLDIV = 5

ha senso solo se usi il PLL, quindi impostando

#pragma config FOSC = HS

la divisione del PLL non ha effetto.

Quindi se scrivi

#pragma config FOSC = HS
#pragma config PLLDIV = 5

funziona?

E se togli #pragma config PLLDIV = 5

Con la seconda impostazione imposti il PLL che genera 98MHz diviso 2 hai un clock di 48 MHz.
Non ricordo le impostazioni di default dei registri di divisone, ma se sono 1, avendo 48MHz hai circa 500ms.

Quindi sembra che le cose tornino.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
11 Anni 5 Mesi fa #9 da velvettiere
Risposta da velvettiere al topic Routine di delay non applica il giusto ritardo.
Ok... Grazie mille.

Ho risolto il problema impostando la funzione setQuartz(48); passando come parametro non 20 (frequenza del quarzo) bensì 48 cioè la frequenza a cui sta andando la CPU presentata all'uscita del multiplexer.

Questo pic 18f4550 è veramente un portento e va studiato fino in fondo.

Grazie per il vostro aiuto. Valerio.

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

  • velvettiere
  • Senior Member
  • Senior Member
Di più
11 Anni 5 Mesi fa #10 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Routine di delay non applica il giusto ritardo.
La frequenza da passaer alla routine e' infatti quella operativa della CPU, che puo' differire da quella del quarzo, visto la presenza del PLL, pre-scaler e post-scaler.

...ho scelto il PIC18F4550 per la Freedom II proprio perche' e' un buon compromesso di periferiche e applicazioni! :)

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
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