bonjour à tous,
je voulais être sûr de mon timer2,
je possède un PIC16F877 mon quartz fait 4MHz
et je souhaite le faire sur une base de 1ms afin de pouvoir choisir x.ms une fois configuré.
je rappelle la formule: Ttmr2 = (PR2+1).(1/K1).4.Tosc
http://ecl.ac-orleans-tours.fr/lyc-m...timer2_pic.PDF
Pour vérifier si mon timer2 est OK je veux regarder si j'ai des créneaux de 1ms à l'oscilloscope (sur une led par exemple).
voici le bout du programme:
void init_timer2(void);
/*****************************p rogramme principal********************* *********/
void main(void) //test: voyons si timer 0 est a 1ms
{
PORTB.0=1; //allume led
tempoxms(1);
PORTB.0=0; //éteint led
tempoxms(1);
while(1)
}
/****************************** ******Timer2****************** ******************/
void init_timer2(void)
{
T2CON=0x04; // Timer2 activé, prescaler à 1
PR2=63; // Valeur de 1ms
TMR2IF=0; // flag repasse à 0
while (TMR2IF==0); // Attente falg
}
void tempoxms(uns16 t)
{
uns16 temps; // Choisir temps sur une base de 1ms avec le paramètre t
t=1;
for (temps=0;temps<t;temps++)
{
init_timer2();
}
}
je pense que le programme ne marche pas car je ne capte pas de tension carré à l'oscillo.. aidez-moi svp!
merci.
-----