Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Oscillateur interne PIC18F4431
-
flolarajasse
Membre- Messages : 22
- Enregistré en : septembre 2015
La fréquence que j'avais relevé n'avait rien à voir. J'ai fait un ON/OFF sur ma led afin de voir la durée d'un cycle.
Temps haut à l'oscilloscope : 0,5µs => Sachant qu'une instruction = 4 coups d'horloge :
0,5µs = 4 x Tosc => Tosc = 0.125µs => Fosc = 1/0.125µs = 8MHz
Je retrouve donc bien ma fréquence de 8MHz, ce qui me rassure ; en revanche, si le problème ne vient pas de l'horloge, d'où vient-il étant donné que mon programme fonctionnait parfaitement avec un quartz externe...
Temps haut à l'oscilloscope : 0,5µs => Sachant qu'une instruction = 4 coups d'horloge :
0,5µs = 4 x Tosc => Tosc = 0.125µs => Fosc = 1/0.125µs = 8MHz
Je retrouve donc bien ma fréquence de 8MHz, ce qui me rassure ; en revanche, si le problème ne vient pas de l'horloge, d'où vient-il étant donné que mon programme fonctionnait parfaitement avec un quartz externe...
Oscillateur interne PIC18F4431
Oscillateur interne PIC18F4431
Bonsoir,
juste une remarque: on ne peut pas répondre sur ton bug si
1/ tu ne le décris pas.
2/ si tu ne postes pas ton code complet.
Quant au 8MHz, je déconseille l'usage des IDE qui génère les renseignements de registre en cochant simplement des cases, la plupart du temps ça masque les contenus des registres associés et certains sont utilisés pour d'autres fonctions.
Là seul OSCCON est à configurer correctement, ce qui semble être le cas et config1H, clairement indiqué à la page 35 de la datasheet.
juste une remarque: on ne peut pas répondre sur ton bug si
1/ tu ne le décris pas.
2/ si tu ne postes pas ton code complet.
Quant au 8MHz, je déconseille l'usage des IDE qui génère les renseignements de registre en cochant simplement des cases, la plupart du temps ça masque les contenus des registres associés et certains sont utilisés pour d'autres fonctions.
Là seul OSCCON est à configurer correctement, ce qui semble être le cas et config1H, clairement indiqué à la page 35 de la datasheet.
Oscillateur interne PIC18F4431
Bonjour
A priori tu as trouvé......quelques remarques
-IRCIO c'est bien INTERNE ne pas confondre avec RCIO:-)
- Tu as 2modes interne:entrée sortie RA6 RA7 ou RA6 Fosc/4 et entrée sortie RA7 qui amha doivent fonctionner sur ta carte(les deux)
- Lorsque on modifie un paramètre comme par exemple la fréquence oscillation, un composant qui n'a pas le même chronographe qu'un autre, il faut que les paramètres de toutes les bases de temps de ton programme soient en constante, avec bien sur avec les calculs adéquate; cela évite tes petits problèmes. S' il est impossible, de passer par des constantes il reste la solution des tests et condition pour qu'une partie du code soit compilé ou non par le dit compilateur.C'est ce qui rend ton code le plus UNIVERSEL possible.
IL va de soit ce n''est que des conseils.
A+
A priori tu as trouvé......quelques remarques
-IRCIO c'est bien INTERNE ne pas confondre avec RCIO:-)
- Tu as 2modes interne:entrée sortie RA6 RA7 ou RA6 Fosc/4 et entrée sortie RA7 qui amha doivent fonctionner sur ta carte(les deux)
- Lorsque on modifie un paramètre comme par exemple la fréquence oscillation, un composant qui n'a pas le même chronographe qu'un autre, il faut que les paramètres de toutes les bases de temps de ton programme soient en constante, avec bien sur avec les calculs adéquate; cela évite tes petits problèmes. S' il est impossible, de passer par des constantes il reste la solution des tests et condition pour qu'une partie du code soit compilé ou non par le dit compilateur.C'est ce qui rend ton code le plus UNIVERSEL possible.
IL va de soit ce n''est que des conseils.
A+
Modifié en dernier par Anonymous le ven. 18 sept. 2015 16:59, modifié 1 fois.
Oscillateur interne PIC18F4431
-
flolarajasse
Membre- Messages : 22
- Enregistré en : septembre 2015
Bonjour à tous,
J'ai enfin trouvé d'où venait mon problème ; il s'agit de mon traitement réception UART qui était trop long.
En effet, avec une fréquence de 40MHz, mon traitement avait le temps de s'effectuer avant que l'UART soit pleine.
Avec une fréquence de 8MHz, je suis obligé de gérer les "overflows" de mon UART lors de mon traitement. Si mon UART est pleine alors que mon traitement n'est pas finit, je la vide manuellement afin de pouvoir recevoir de nouveaux octets. Je ne sais pas si j'ai été clair ^^. L'essentiel est que ça fonctionne maintenant
J'ai enfin trouvé d'où venait mon problème ; il s'agit de mon traitement réception UART qui était trop long.
En effet, avec une fréquence de 40MHz, mon traitement avait le temps de s'effectuer avant que l'UART soit pleine.
Avec une fréquence de 8MHz, je suis obligé de gérer les "overflows" de mon UART lors de mon traitement. Si mon UART est pleine alors que mon traitement n'est pas finit, je la vide manuellement afin de pouvoir recevoir de nouveaux octets. Je ne sais pas si j'ai été clair ^^. L'essentiel est que ça fonctionne maintenant
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 17 invités