salut a tous,
je souhaite mesuré la période d'un signal carré. j'utilise le mode CCP du pic, mais le probleme c'est que mon programme marche pas(les valeurs ne sont pas précis) !!!
Plus précisement je vais recevoir un signal carré je veux mesurer sa période et sa fréquence , je vous joint mon code en C. si voulez plus de precision ou si vous avez une autre methode (qui marche...) je suis preneur.
merci d'avance
a+
Code:#int_TIMER1 TIMER1_isr() { compt++; if (compt=4294967294); { compt=0; } } #int_CCP1 CCP1_isr() { disable_interrupts(GLOBAL); front++; if (front==1) { set_timer1(0); front=1; } else if (front==2); { T2=CCP_1; periode=((T2*0.0000002) + (compt*65536*0.0000002)); set_timer1(0); compt=0; front=1; } disable_interrupts(GLOBAL); } void main() {compt=0; front=0; set_timer1(0); set_TRIS_C(0XFF); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); setup_ccp1(CCP_CAPTURE_RE); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); DO { enable_interrupts(INT_CCP1); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); printf("T= %ld \n\r", periode ); frequence= 1/(periode); printf("frequence = %f Hz \n\r", frequence); } while(1); }
-----