Description
Découverte de la carte Explorer 16 de chez Microchip sur laquelle est monté un DSPic33FJ256GP710
But
Ayant à disposition pour une durée indéterminée cette board, le but est de pouvoir mettre en pratique la programmation en C sur microcontrôleur (uC), et ainsi de pouvoir :
- lire des switchs (ON/OFF -> Etat logique : 1/0)
- alimenter des leds (enfin plutôt les allumer ou les éteindre)
- afficher un message sur un écran LCD 2x16 caractères
- lire la tension sur un potentiomètre (utilisation d'un convertisseur AD --> analogique numérique)
- utilisation de bus de communication --> liaison série (I2C - SPI - RS232)
- connexion de module externe
- ...
Composants
- Board Explorer 16 avec DSPIC 33FJ256GP710A
- Émulateur / Debugger : ICD 3
- IDE (environnement de développement) : MPLAB
- Compilateur C pour de chez Microchip C32
- Alimentation externe 12V
Aperçu & Codes & Astuce
Aperçu
Clignotement Leds - Programme 1 à 4
programme 1 : Faire clignoter une led toutes les 0.5s --> 2Hz.
programme 2 : comme pour le principe du chenillard, on veut faire déplacer le clignotement de la led (toujours à 2hz)sur une autre, mais manuellement, pour cela on utilise le switch S3. Dans le code, on pourra voir la notion très basique de l'anti-rebond
programme 3 : On reprend la notion de chenillard manuel, mais là le désire c'est d'aller dans l'autre sens - donc que l'utilisateur ait le choix de faire clignoter la led de gauche ou la led de droit par rapport à led de basse qui clignote toujours à 2Hz
programme 4 : On reprend la base du programme 2, mais ici on va implémenter un mécanisme d'antirepond, c'est-à-dire que l'on veut garantir si la touche est bien pressée ; car un switch à lamelle a des effets "indésirable" du à l'aspect mécanique de la structure de celui-ci (voir explication --> antirepond : en construction)
Affichage & ADC : code
programme 4 : désire simplement afficher un message sur l'affichage LCD 2x16
programme 5 : afficher un message "Exemple : FIXME" + l'information venant du convertisseur ADC du DSPic
code
Clignotement Led : code
programme 1 --> File:Main.c
programme 2 --> File:Main cligno led VB.c
programme 3 --> File:Main Led Cligno AR V1.c
programme 4 --> File:Main antirebond.c & File:Antirebond.h.c & File:Anti rebond v01.c
Affichage & ADC : code
programme 5 --> File:Main affichage simple.c
programme 6 --> File:Main ADC.c
astuce
Clignotement Led
WARNING : Pour la partie Timer1, le bit TCS (Timer Clock Source)du registre T1CON doit être placé à 0, ce qui permet d'utiliser la fréquence interne (FCY) que l'on configure dans la partie oscillateur. Pour ce premier programme, j'ai voulu utiliser pour la fréquence interne la même fréquence du Quart, soit FCY = 8MHz. Voir ci-dessous, le calcul pour déterminer différents paramètres. Calcul permettant de déterminer les valeurs de bits pour M, N1, N2 (voir page 150 du datasheet):
--> voir image File:Calcul_oscill.jpg On choisit des valeurs pour N1 et N2 et il n'y plus qu'à calculer la valeur pour M
Affichage & ADC
WARNING --> pour afficher des caractères, utilisation du header file lcd.h (fournit sur le site de microchip)
Liens utiles
liens : documentation PDF
- Doc PDF Carte Explorer 16
- Doc PDF Datasheet DSPIC33FJxxx
- Doc PDF Complément Datasheet --> Oscillateur
liens : documentation Site Internet
liens : lien pour achat board additionnel
en cours de construction
Participant
- User:Philoux
- you !!??!!