« Utiliser les PIC 16F et 18F/Exercices/Interruption timer0 en langage C » : différence entre les versions

m
Robot : Remplacement de texte automatisé (-( |\n|\()([0-9]{1,3})( | )([0-9]{3})( |\)) +\1{{formatnum:\2\4}}\5)
m (Robot : Remplacement de texte automatisé (-( |\n|\()([0-9]{1,3})( | )([0-9]{3})( | )([0-9]{3})( |\)) +\1{{formatnum:\2\4\6}}\7))
m (Robot : Remplacement de texte automatisé (-( |\n|\()([0-9]{1,3})( | )([0-9]{3})( |\)) +\1{{formatnum:\2\4}}\5))
Les compilateurs C compilent cela certainement de manière peu optimisée. Il faut savoir qu'il existe un bit "half carry" dans le registre '''Status''' qui permet certainement d'optimiser, mais nous laissons tomber ce genre de détail.
 
Pour la période de l'interruption, on part de la fréquence quartz divisée par 4 soit : 1 MHz qu'il faut diviser par 10 000{{formatnum:10000}} pour avoir une période d'overflow de 10 ms. Le timer gère une division par 256 qu'on peut ramener à 250 en l'initialisant à 6 mais il nous reste à réaliser une division par 40 qui n'est pas une puissance de 2. On va prendre une division par 64 et 10000 / 64 = 156,25 donc notre timer0 sera initialisé à 256-156 = 100.
<source lang="c">
//****** Mikro C ********
143 371

modifications