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 ---
Forum général sur le langage C !

Modérateur : Jérémy

Oscillateur interne PIC18F4431
flolarajasse
Membre
Membre
Messages : 22
Enregistré en : septembre 2015

#21 Message par flolarajasse » mer. 16 sept. 2015 16:28

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...

Oscillateur interne PIC18F4431
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#22 Message par Guest » mer. 16 sept. 2015 17:11

Bon je suis partie sur mauvaise voie. je pensais à tord que tu n'avais pas de 8MHz.
Donc, tu peux nous dire ce qu'il ne fonctionne pas dans ton programme.il y a quoi dans ce programme?

j'ai vue de l'uart tu as bien changé baud rate(spbrg) par exemple

Oscillateur interne PIC18F4431
HULK28
Avatar de l’utilisateur
Amateur
Amateur
Messages : 106
Enregistré en : août 2015
Localisation : IdF

#23 Message par HULK28 » ven. 18 sept. 2015 02:53

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.
"Pour la carotte, le lapin est la parfaite incarnation du mal" -Robert Shecley-

Oscillateur interne PIC18F4431
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#24 Message par Guest » ven. 18 sept. 2015 09:08

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+
Modifié en dernier par Anonymous le ven. 18 sept. 2015 16:59, modifié 1 fois.

Oscillateur interne PIC18F4431
flolarajasse
Membre
Membre
Messages : 22
Enregistré en : septembre 2015

#25 Message par flolarajasse » ven. 18 sept. 2015 12:00

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 :D

Merci !


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 33 invités