Club robotique de Sophia-Antipolis

Accueil > Projets, études > Nos robots > Robots Eurobot > PoBot 2006 (aka Le Gobeur) > Programmation du robot 2006 > Bibliothèque Carte CNP

Bibliothèque Carte CNP

mercredi 22 février 2006, par Gilles S.

Principe de programmation et quelques bibliothèques pour la Carte CNP.

Avant de vous décrire les bibliothèques, je voudrais tout d’abord expliquer mes "bases" vous permettant de comprendre plus rapidement l’architecture de ces bibliothèques.

Tout d’abord, au niveau de la notation, j’utilise depuis des années la Notation Hongroise mais simplifiée & adaptée aux micro-contrôleurs.
Pour les variables, le(s) premier(s) caractère(s) en minuscule indique le type de variable et leur définition commence par une majuscule.
Par exemple :
 bData : boolean ou bit (FALSE - TRUE),
 cData : unsigned char (0 - 255),
 iData : unsigned int (0 - 65.535),
 lData : unsigned long (0 - 4.294.967.296),
 fData : float (+/- xxx).
 szData : tableau d’ungigned char,
 stData : structure de données,
 ...

Pour les fonctions/procedures, le premier mot indique dans quelle bibliothèque elle se trouve et le(s) autre(s) leur utilité (çà peut être valable aussi pour les variables).
Par exemple :
 Serial_Init pour initialiser la liaison série,
 Serial_Send pour envoyer des données via la liaison série,
 ...

Enfin, au niveau des fichiers includes (.h) :
 J’ai toujours un fichier include au nom du projet (ici "CarteCNP.h") qui regroupe tous les fichiers includes nécessaires (standard + bibliothèques). Ainsi, chaque fichier programme (.c) n’a besoin d’appeller que cet include pour tous les avoir ... d’où moins de temps pour chercher pourquoi le compilo ne trouve pas une déclaration ou éviter les fichiers qui s’autoappellent ...

 J’ai un fichier include qui décrit les différents ports du micro (entrées, sorties, valeur par défaut). Ces ports sont initialisés au démarrage et il suffit de changer une valeur dans ce fichier include pour mettre à jour la gestion des E/S.

Vous avez, pour le moment, trois bibliothèques :
 Timer-V10 : gestion du timer milliseconde, permettant de gérer differents timings, une l’horloge temps réel et pour le moment la détection de couleur. Le tout avec une seule IT.

 Serie-V20 : gestion de la liaison série RS232 en "tâche de fond", grâces aux ITs Série. Pour le robot de la coupe, cette bibliothèque gèrera également la liaison série TTL pour la CMUCAM, avec exactement les mêmes fonctions, mais en ajoutant ’2’ à la fin de Serial. (Exemple : Serial2_Init au lieu de Serial_Init, bSerial2_EndRec au lieu de bSerial_EndRec ...)

 Terminal-V10 : gestion de HyperTerminal via la liaison série. Cette bibliothèque permet de gérer la liaison série comme s’il s’agissait d’un clavier (ScanChar & ReadChar) et d’un écran (PrintS).

Vous trouverez également le fichier "CarteCNP.zip" contenant le programme principal exemple, le fichier include décrivant le port et le fichier include générique.

Si vous avez des questions, n’hesitez pas à le faire, celà me permettra d’étoffer cet article 😉

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.