Après mon Tuto sur les interruptions , j'ai fais celui des timer .
Mais le HIC c'est que mon programme ne fonctionne pas, et je ne sais pas pourquoi .
Quand j'essaye de faire un debug, mes valeurs de timer ne change jamais . TMR0L et TMR0H ?
Si vous trouvez l'erreur je pourrais publier mon tuto , ce qui serait sympa . Voila une erreur que j'essaye alors un œil neuf serait le bienvenue .
PIC 18F45K22 oscillateur à 8Mhz compilé avec MikroC
Code : Tout sélectionner
//################################# DECLARATION #########################################
char compteur = 0; // Déclaration de la variable compteur en char ( 0 à 255) et on l'initialise à 0 en même temps
//################################# FONCTION #########################################
void interrupt() { // Ici c'est notre fonction d'interruption
// On regarde quel drapeau a été mis à 1, pour connaitre la source de l’interruption
if (INTCON.TMR0IF) // Ici le bit TMR0IF (bit2) du registre INTCON est testé
{
++compteur; // On incrémente notre compteur sur une interruption
TMR0H = 0;
TMR0L = 0;
INTCON.TMR0IF = 0; // IMPORTANT !!! On ré-arme notre drapeau en le remettant à 0
}
}
//######################### FONCTION PRINCIPALE ET CONFIGURATION #################################
void main() { // ceci contiendra notre programme, c'est la fonction principale(main) et elle est obligatoire.
ANSELC = 0; // Met le PORT C en numérique
PORTC = 0; // Affecte 0 au PORT C
TRISC = 0b00000000; // Place le PORT C en sortie pour afficher les leds
T0CON : 0b11000111 ; // Configuration du TIMER0
TMR0L = 0; // chargement de la valeur 0 dans le TIMER
TMR0H = 0;
INTCON = 0b10100000; // Configuration de l'interruption
//################################# Boucle infinie #########################################
while(1) // Ici c'est notre boucle sans fin.
{
if (compteur == 31) // Si notre compteur d'interruption à atteint la valeur calculée de 31
{
PORTC = ~PORTC; // alors on inverse nos sorties
compteur = 0; // On remet à 0 notre compteur pour une nouvelle tempo
}
}
} // Fin de notre fonction principale, la boucle est bouclée Par avance Merci


