Precisione timer su PIC.

9 Anni 5 Mesi fa #6 da alfa75
Risposta da alfa75 al topic Precisione timer su PIC.
la scelta di utilizzare il timer con un quarzo esterno è la migliore infatti viene utilizzata anche per realizzare orologi usando un quarzo da 32.768 kHz

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 5 Mesi fa - 9 Anni 5 Mesi fa #7 da Nutshell
Risposta da Nutshell al topic Precisione timer su PIC.
Mi sono spiegato male.

Non ho usato un quarzo assegnato al timer. Ho eliminato totalmente l'uso dei timer. Ho realizzato un circuito oscillatore con quarzo che lavora per i fatti suoi e mi genera un' onda quadra che utilizzo per chiamare l'interrupt routine tramite l' INT PIN del pic quando l'onda si trova sul fronte positivo. La frequenza che ho scelto è 20Khz, quindi effettuo una chiamata esattamente ogni 50uS e le chiamate avvengono con tempi costanti a prescindere dal codice che inserisco nell'interrupt routine, perchè il mio oscillatore non dipende dall'azzeramento del flag! Inoltre in questo modo posso sincronizzare più dispositivi in parallelo controllati dallo stesso oscillatore. Il prezzo da pagare è l'oscillatore esterno.
Inoltre devo fare attenzione a non scrivere una interrupt routine troppo lunga, perchè se supero i 50uS perdo la chiamata successiva... ma in realtà questo non è un problema, sono poche righe di codice.
Ultima Modifica 9 Anni 5 Mesi fa da Nutshell.

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

  • Nutshell
  • Avatar di Nutshell
  • Premium Member
  • Premium Member
Di più
9 Anni 5 Mesi fa #8 da alfa75
Risposta da alfa75 al topic Precisione timer su PIC.
Rileggendo il tuo messaggio eri stato chiaro
avevo capito male io ,mi ero sbagliato col pin T0CKI :oops:

l'importante adesso è come hai detto tu ,devi stare attento a non perdere le chiamate con un codice troppo "ingolfato".
Comunque ottimo lavoro.

Ciao :)
Andrea

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 5 Mesi fa #9 da embedded
Risposta da embedded al topic Precisione timer su PIC.
Ciao Nutshell,

avevo chiesto che tipo di compilatore usi ed un frammento di codice.

Grazie

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

  • embedded
  • Avatar di embedded
  • New Member
  • New Member
Di più
9 Anni 5 Mesi fa #10 da Nutshell
Risposta da Nutshell al topic Precisione timer su PIC.
Hai ragione, uso MPLAB X su ambiente mac OSX yosemite.

Questa è la routine che sto usando per variare in modo costante il duty cicle del modulo PWM per creare un' onda triangolare, e funziona. Ho semplificato il codice perchè nella versione completa c'è anche una parte che gestisce la profondità mantenendo costante la frequenza. Comunque ho risolto, pubblico per aiutare chi incappa nello stesso problema.


void interrupt isr()
{


lfostep++;
if (lfostep==tempo)
{
lfostep=0;


if (direction)
{

CCPR1L++;

if (CCPR1L>=100)
{
LED1=1; //blink e cambio direzione
direction=0;
}
}
else
{
CCPR1L--;

if (CCPR1L<=depht)
direction=1;
}
}

if (CCPR1L<=99) //Spengo il led del tempo
LED1=0;

INTF = 0;
}

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

  • Nutshell
  • Avatar di Nutshell
  • Premium Member
  • Premium 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