Bonjour,

Je dois utiliser les timers du PIC. Je souhaite trouver une autre solution que fonctionner via interruptions pour des raisons d'intrusivité.

Je souhaiterais savoir si cette solution de polling sur les registres TMR0L & TMR0H est viable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void timer_start()
{
    T0CON = 0;
    TMR0H = 0xFF;
    TMR0L = 0xFF;
    T0CON = 0x13; // Enable Timer0, prescaler = 16
}
 
// Stop counting
void timer_stop(){
    T0CON = 0; // Stoping Timer.
}
 
// Return if the timer finished its counting.
int timer_finished(){
    if(TMR0L == 0) // if Timer1 High Register is empty
        if(TMR0H == 0) // if Timer1 Low Register is empty
            return 1; // return "true"
        return 0; // return "false"
}
Le but étant que la fonction timer_finished() me dit si le timer a atteint 0. Je n'arrive pas à trouver dans la doc si le timer est cyclique (dans ce cas le polling pour scruter la fin du timer est impossible...)

Merci !