Où sommes nous ?

Retour

Première compilation

Maintenant que tout est installé, passons à notre premier projet : plutôt que la classique "LED clignotante" qui se trouve sur quasiment tous les sites d'initiation aux PICs, mais qui ne permet aucune interactivité, j'ai préféré un truc avec 2 boutons poussoirs ; un pour allumer la fameuse LED, le second pour l'éteindre.

La création du projet

Première étape : lancer Piklab, puis on utilise le menu "Projet/nouveau projet". Un popup s'ouvre dans lequel on spécifie les paramètres du projet.

Le gestionnaire de projet

Dans la fenêtre principale s'ouvre un éditeur contenant le squelette du fichier C de notre projet.

Sur la gauche, et suivant votre configuration bien sûr car tout peut être changé, on trouve l'onglet "Gestionnaire de projet" qui permet de changer tous ces paramètres et d'ajouter d'autres fichiers.

Le menu tools

Autre endroit intéressant, le menu tools qui contient plein de choses non moins intéressantes concernant l'éditeur, mais aussi les entrées :

Attention : elle n'est pas répercutée automatiquement dans le source, il faudra donc la copier manuellement.

Le code

Rien de bien compliqué, il devrait ressembler à

/* TestLedBP
*
* GP5 -> La LED
* GP2 <- Marche
* GP3 <- Arret
*/

/* ----------------------------------------------------------------------- */
/* Fichier source modèle généré par Piklab */
#include <pic12f675.h>

/* ----------------------------------------------------------------------- */
/* Bits de configuration */
typedef unsigned int word;
word at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _BODEN_OFF & _CP_OFF & _CPD_OFF;

/* Environment */
#define LED GP5
#define BT_MARCHE GP2
#define BT_ARRET GP4

void main() {
/* << insérer le code >> */

/* Activation du Pullup sur toutes les entrées (il sera automatiquement supprimé sur toutes les sorties)
* Sans objet dans GPSim mais bon, faisons ca propre ;D
*/
ANSEL = 0; // Desactive le convertisseur A/D (675 seulement)
NOT_GPPU = 0; // Pullup actif
WPU = 255; // sur toutes les entrees
TRISIO = 0x14; // GP2 et 4 en entree (0x10 + 0x04)

for(;;){ // C'est parti
LED = 0; // Eteint la LED
while(!BT_MARCHE);

LED = 1; // Allume la LED
while(!BT_ARRET);
}
}

Il ne reste plus qu'à compiler par le menu "construire / construire le projet" ou simplement F8. En bas de l'éditeur, l'onglet "journal de compilation" contient d'éventuelles erreurs. Dans notre cas, tout devrait s'être bien passé.

sdcc -mpic14 -p12f675 -V --debug -I/home/laurent/Documents/ProjetsPic/Tests/TestLedBP/ -c TestLedBP.c 
+ "/usr/bin/sdcpp" -nostdinc -Wall -I"/home/laurent/Documents/ProjetsPic/Tests/TestLedBP/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=290 -DSDCC_REVISION=5416 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="12f675" -isystem "/usr/bin/../share/sdcc/include/pic14" -isystem "/usr/share/sdcc/include/pic14" -isystem "/usr/bin/../share/sdcc/include" -isystem "/usr/share/sdcc/include" -isystem "/usr/bin/../share/sdcc/include/pic" -isystem "/usr/share/sdcc/include/pic" "TestLedBP.c"
sdcc -mpic14 -p12f675 -V --debug -Wl-c -Wl-m -I/home/laurent/Documents/ProjetsPic/Tests/TestLedBP/ -oTestLedBP.hex TestLedBP.o
using default linker script "/usr/share/gputils/lkr/12f675.lkr"
+ "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib" -I"/usr/share/sdcc/lib" -I"/usr/bin/../share/sdcc/lib/pic" -I"/usr/share/sdcc/lib/pic" -c -m -w -r -o TestLedBP.hex TestLedBP.o libsdcc.lib pic12f675.lib

*** Réussite ***
Analyse du fichier COFF : /home/laurent/Documents/ProjetsPic/Tests/TestLedBP/TestLedBP.cof
Device name: "12F675"

Le débugage

Le gros point fort est que l'on peut placer des points d'arrêt (matérialisé par une croix rouge) et tracer directement dans le source C (la flèche verte matérialise où l'on se trouve).
Sur la gauche, l'onglet "Vue surveillance" permet de surveiller le contenu des registres, E/S, flags ... et éventuellement d'en changer les valeurs.

C'est déjà bien, mais on reste sur sa faim lorsque l'on sait ce dont GPSim est capable au niveau de l'interaction avec les composants extérieurs. L'idéal serait d'avoir à la fois l'IHM de PIKLab pour le côté gestion de projet et la possibilité de tracer le source C et celle de GPSim pour sa puissance.

 


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2017
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.