Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Embarqué
Embarqué Forum d'entraide sur la programmation des systèmes embarqués
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/10/2012, 22h19   #1
philouxy
Membre à l'essai
 
Philippe
Inscription : octobre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : Philippe
Âge : 30

Informations forums :
Inscription : octobre 2009
Messages : 44
Points : 21
Points : 21
Envoyer un message via MSN à philouxy
Par défaut Soucis sur carte Explorer 16 de Microchip

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
Fichiers attachés
Type de fichier : c main.c (14,0 Ko, 9 affichages)
Type de fichier : c lcd.c (5,4 Ko, 5 affichages)
Type de fichier : c delay.c (2,5 Ko, 2 affichages)
Type de fichier : h delay.h (418 octets, 2 affichages)
Type de fichier : h lcd.h (2,2 Ko, 3 affichages)
philouxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2012, 23h56   #2
philouxy
Membre à l'essai
 
Philippe
Inscription : octobre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : Philippe
Âge : 30

Informations forums :
Inscription : octobre 2009
Messages : 44
Points : 21
Points : 21
Envoyer un message via MSN à philouxy
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
philouxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 13h26   #3
Livegen
Membre habitué
 
Avatar de Livegen
 
Homme
Ingénieur logiciel embarqué Franco-allemand
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Allemagne

Informations professionnelles :
Activité : Ingénieur logiciel embarqué Franco-allemand
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 115
Points : 115
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".
Livegen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h28.


 
 
 
 
Partenaires

Hébergement Web