Bonjour à tous,
Nouveau sur ce forum, je me suis lancé à la découverte du pic18f.
Petit problème : faire clignoter des leds, jusque là tout va bien.
Tout d'abord voici ma configuration: pic18f4620, quartz externe de 20MHz, donc fréquence de fonctionnement de 5MHz puisqu'ils faut 4 coups d'horloge pour exécuter une instruction.
Lorsque je fais changer l'état de ma led dans une boucle while sans timer j'ai bien ma fréquence de 5MHz.
Dès que j'utilise le timer avec génération d'une interruption à l'overflow, plus rien ne va. Quand théoriquement, en choisissant une certaine valeur pour TMR0H et TMR0L, je dois obtenir une certaine fréquence, j'obtiens globalement deux fois moins.
Quand le registre TMR0 est chargé à fond (c'est-à-dire dès qu'il sera incrémenté, une interruption sera générée), j'obtiens une fréquence de sortie de 36kHz.
J'ai cherché toute la journée, relu 20 fois la datasheet mais je ne comprends pas. Pourquoi cette baisse de fréquence ? Avec MPLAB, j'ai vu qu'il fallait au prorgamme 32 coups d'horloge pour sauter dans l'interruption, mais ca ne justifie selon moi pas cette chute, nous devrions obtenir une fréquence au moins de l'ordre du MHz.
Je travaille avec un compteur de 16 bits,j'ai inhibé le préscaleur, j'utiliser l'horloge interne et non externe, je ne vois vraiment pas.
Je vous remercie pas avance pour votre aide
Fr