modulo CCP in modalità Capture

  • graziano1985
  • Autore della discussione
  • Giovane Utente
  • Giovane Utente
Di più
6 Anni 10 Mesi fa #1 da graziano1985
modulo CCP in modalità Capture è stato creato da graziano1985
salve a tutti , premetto che è la prima volta che mi cimento con il modulo ccp
avrei la necessità di calcolare il tempo che intercorre tra due impulsi tra i vari esempi che ho trovato sono riuscito a tirare fuori questo
Code:
__interrupt (high_priority) void ISR_alta (void) { if (PIR1bits.CCP1IF == 1 ) { // Resetto il flag d'interrupt per permettere nuove interruzioni PIR1bits.CCP1IF = 0; buffer = ((CCPR1H <<8) + CCPR1L) ; } } int main(void) { //************************************************************ // Imposto CCP1 //************************************************************ // Imposto la modalita' Capture sul fronte di salita CCP1CONbits.CCP1M0 = 0; CCP1CONbits.CCP1M1 = 1; CCP1CONbits.CCP1M2 = 0; CCP1CONbits.CCP1M3 = 1; // Abilito le interruzioni ad alta priorita' PIE1bits.CCP1IE = 1; IPR1bits.CCP1IP = 1; //************************************************************ // Imposto il Timer3 //************************************************************ // Utilizzo il Timer3 T3CONbits.T3CCP1 = 1; // Imposto il Prescaler ad 1 T3CONbits.T3CKPS1 = 0; T3CONbits.T3CKPS0 = 0; // Imposto il clock a Fosc/4 T3CONbits.TMR3CS = 0; // Attivo il Timer T3CONbits.TMR3ON = 1; //************************************************************ // Abilito le interruzioni //************************************************************ //Resetto i Flag delle interruzioni d'interesse PIR1bits.CCP1IF = 0; // Abilito l'interrupt globale INTCONbits.GIE = 1; // Abilito l'interrupt periferiche INTCONbits.PEIE = 1 ;

( questo è solo un estratto del codice completo)

il pic in uso è un 18f4550

ovviamento il codice non funziona qualsiasi frequenza io fornisca al pin RC1
l' LCD mostra sempre il valore =0

dove sbaglio ??? grazie in anticipo

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

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
6 Anni 10 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic modulo CCP in modalità Capture
Salve Graziano,

non ho visto il codice ma tra gli esempi poposti nel testo XC8 step by Step , c'e' un progetto per la misura della frequenza di un segnale.

Esattamente quello che stai facendo tu.

Saluti,

Mauro

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

  • Inco
  • Nuovo Utente
  • Nuovo Utente
Di più
6 Anni 5 Mesi fa #3 da Inco
Risposta da Inco al topic modulo CCP in modalità Capture
Ciao, anche io alle prese con il capture... ho seguito l'esempio su manuale step by step xc8 come piu o meno o visto che hai fatto tu... nel tuo caso come gestisci la variabile buffer? Dovresti fare due letture per conoscere il periodo.

Carlo Incoronato

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

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.

Forum - Ultimi messaggi