|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() |
Bonsoir à tous chers programmeurs,
Je viens vers vous pour des soucis avec un DSPic et la carte Explorer 16 de Microchip que je viens d’acquérir. La carte fonctionne avec le code démo fournis avec la carte, j'ai même modifié les variables pour afficher des informations sur l'affichage pour voir si tout était en ordre au niveau de la compilation --> Ok Voici quelques infos sur le matériel utilisé : 1x Carte explorer 16 avec un DSPic33FJ256GP710 IDE : Mplab 8.76 avec compilateur C30 Emulateur : ICD3 Mon problème c'est que je ne suis pas sur de bien configurer mes différents fusibles, voir mes différents registres pour la partie oscillateur ; donc c'est pour cela que j'ai besoin d'un coup de main de gens experts en la matière... vous !!! J'ai repris les codes fournis dans le code démo pour la gestion de l'affichage, voir fichiers en annexe : lcd.c/h et delay.c/h Ce que j'aimerai déja configurer c'est d'avoir une horloge (fréquence de cycle de 40Mhz) avec une horloge externe 8Mhz, en utilisant justement la PLL du PIC En suivant la doc de chez microchip avec ces différentes sections, j'ai essayé de configurer mes registres pour l'oscillateur,... tout compile --> cool, mais quand j’implémente le code sur la carte c'est tout de suite moin cool... Au lieu d'avoir un affichage instantané, je me retrouve avec une affichage qui affichage caractère par caractère à la minute et encore je suis gentil, je pense que je ne dois pas avoir bien configurer mes registres. Je vous mets en annexe, le tout est zipé : Mon code (main) + code de l'affichage en tout cas je vous remercie déjà de me lire et si vous avez la moindre infos pour me dépatouiller n'hésiter je suis dans les starting blocs... Par avance un grand MERCI Amicalement le cht'y Philou PS: voici le lien de pour la doc de microchip http://www.microchip.com/wwwproducts...cName=en546064 |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() |
Bonsoir à tous,
je viens encore à vous... je me replonge sur le DSPic avec un programme simple on va dire : faire clignoter une led à l'aide d'un timer (timer1) qui doit me créer une interruption toutes les 500ms, je crois que la configuration de celui-ci et des fusibles n'ont pas posé de problèmes, enfin on verra plus tard si la led clignote Ma question cette fois-ci est plus générale : dans le datasheet du composant (PDF_DSPIC 33Fxxx) page 163 - chapitre 11, on parle de la configuration des entrées - sorties avec les différents registres... J'ai compris que le registre TRISx permet de définir soit les pins en entrée ou en sortie, ca c'est ok (1: entrée - 0: sortie), maintenant on a 2 registres PORTx et LATx. De ce que je comprends c'est que le registre LATx permet de lire ou d'écrire une valeur logique, tandis que le registre PORTx lui permet de lire ou écrire une valeur (tension) que nous avons sur la pin... Premièrement avez-vous compris la même chose ? deuxièment : si je veux allumer ou éteindre ma la led j'utilise quel registre ? Je dois dire que j'ai pas bien compris la différence Alors comme d'hab, si vous avez des suggestions, remarques, liens ou autres, je me ferai un plaisir de vous lire Amicalement le cht'y Philou |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Ingénieur logiciel embarqué Franco-allemand Inscription : avril 2008 Messages : 46 ![]() |
C est pas vraiment sa. Si tu regardes la figure 11-1, cela est assez explicite, si tu arrive à lire le schéma.
Pour une écriture, utiliser LATx ou PORTx revient à la même chose, c est ce qui est indiqué par la "data latch" sur le schéma. Par contre, pour une lecture, c est relativement différent. Je m explique, read Lat est placé juste derrière la data latch, en conséquence cela te retournera la dernière valeur écrite sur le port en question. Ensuite read port est directement placé sur I/O PIN, le composant à gauche de I/O est un comparateur, il est la pour connaitre le niveau logique correspondant à la tension de I/O PIN. Concrètement, qu’est ce que cela change ? Imaginons que tu as une très grosse capacité derrière ta sortie. Si tu écris un "1" (avec write lat ou write port) et que tu fais une lecture juste derrière, read lat te retournera un "1" alors que read port te retournera un "0". |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com