Salut, c'est encore moi!
Je programme un 8051 en C (plus pour m'amuser que pour autre chose), et j'ai un problème de timer. Je veux faire une fonction horloge qui va attendre 1 ms. Mais voila le problème c'est que le TF0 ne passe jamais a 1!
Alors si il y en a des qui se souviennent du 8051...
Voila le code:
Code:#include <REG515C.H> /* Auteur: ViiV CLK quartz = 15MHz Cycle Machine = 15000000/12 = 1.25MHz 1/1250000 = 800 nS 1 mS = 1000000 nS 1000000/800 = 1250 1 ms = 1250 coup de CLK */ void horloge(); void main(){ while(1){ horloge(); // Cencé attendre 1 ms // Bla bla bla suite programme } } void horloge(){ TMOD = 0x01; // Timer Mode 0x01 16 bit TH0 = 0x4E2; // Met le Timer 0 poids fort a 1250 TL0 = 0xFB1E; // Met le Timer 0 poids faible a 64286 TF0 = 0x00; // Bit de l'overflow du clock a 0 TR0 = 0x01; // Allume le timer while(TF0 != 1){ // TF0 reste a 0 et l'execution reste plantée dans la boucle !!! // Ne fait rien tant que TF0 n'est pas a 1 } // TR0 = 0x00; // Eteint le timer }
-----