Les Timers sont des registres très utiles dans le pic. Ils peuvent
simuler le fonctionnement multitâche grâce aux interruptions qui génèrent.
Dans cet exemple je vais vous montrer comment créer un signal PWM grâce aux interruption de timer1 d'une pic 16F628A ,
Le code :
int
cnt=0;
void
interrupt(){
if(TMR1IF_bit){
cnt++;
TMR1IF_bit=0;//l3alam yarja3 lelsfer
TMR1H=0X00;
TMR1L=0X00;//nfarghou timer1
}
}
void
main() {
portb=0X00;
trisb=0X00;//portb
out
T1CON=0X31;//timer1
ye5dem ==TME1ON_bit=1 plus prescaler 1:8
TMR1IF_bit=0;//l3alam
fil sfer
TMR1H=0X00;
TMR1L=0X00;//TIMER1
feregh
TMR1IE_bit=1;//INterruption masmou7a
INTCON=0XC0;//GIE et PEIE masmou7in zeda
while(1){
if(cnt==100){
portb=~portb;
cnt=0;
}
}//mise en veille
}
Visualiser le résultat sur le port B avec un
oscilloscope.
bonjour
RépondreSupprimerje vous félicité pour ce travail
j'ai un problème avec mikroc je veux calculer le temps d'une période de signal carré pour calculer la fréquence de ce signal est ce que vous pouvez me donner une aidé
merci d’avance contact moi par:
labib.bnsaadia@gmail.com
bonjour rober,
RépondreSupprimerPour calculer un temps entre 2 événements (2 fronts montants ou descendants) vous pouvez régler le module CCP en mode capture qui est spécialement conçue pour cette tache.