Un exemple avec les timer

on Saturday, August 13, 2011
Bonjour,
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.

0 comments:

Post a Comment