Welcome, Guest
Username: Password: Remember me

TOPIC: Débogage CDC

Débogage CDC 04 Avr 2011 07:16 #78

  • rolfz
  • rolfz's Avatar
  • Offline
  • Admin
  • Posts: 75
  • Karma: 0
CDC est une librairie, un interface qui génère un flux RS232 à travers un câble et une connections USB.
La principale partie consiste ne une partie de code que l'on charge avec son application sur le PIC/Robot.
Une fois mise en route, la connections RS232 peut se faire pratiquement automatiquement du côté PC. En effet, dès que l'on branche un robot ou périphérique CDC, le PC identifie le périphérique et active un pilote CDC qui en principe est installé d'office sur le PC. Je me limite ici à couvrir les systèmes d'exploitation Windows XP et WIN7.
Suite à la connections, un son peut être entendu côté PC indiquant un changement de connections.
BAS-HAUT indique la connections effectuée avec succès (DONG-DING)
HAUT-BAS indique la déconnections du périphérique (DING-DONG)
Une fois connecté, vous pouvez constater dans les périphériques du PC qu'une nouvelle connections COM-PORT est disponible, noter le NO de la connections qui vous sera utile par la suite.
Pour le débogage, nous utiliserons un émulateur de terminal, petit logiciel (TERATERM est gratuit). que nous installerons sur notre PC. Après démarrage, nous démarrerons une session RS232 et indiquerons quel port COM nous lie à notre robot ou carte PICSTAR.
La vitesse n'est pas importante, CDC la sélectionne automatiquement, 19200 baud ou 38400 baud sont conseillés.
 
EXEMPLE ZRobot
la routine suivante peut-être insérée dans notre code robot. Pour  Pinguino, pas besoin d'indiquer ou d'initialiser l'interface.
CDC est activée dès que le compilateur voit une instruction telle que "CDC.print". Seul les valeurs tmpvar1,2,3 sont à initialiser.
Par exemple avec "char tmpval1,tmpval2,tmpval3;" ceci avant le code loop{}
..
char tmpval1,tmpval2,tmpval3; // variables temporaires pour stoquer les informations des capteurs.
char sbuffer[40]; // on initialise un champ de caractères qui permettra de formatter l'information à envoyer  vers le PC
..
// pour tester le code avec cable USB connecté:
if(robot.usb())
{
tmpval1=robot.capteur(DROITE);
tmpval2=robot.capteur(CENTRE);
tmpval3=robot.capteur(GAUCHE);

sprintf(sbuffer,"capteurs %u %u %u\r\n",tmpval1,tmpval2,tmpval3);
CDC.print(sbuffer,strlen(sbuffer));
}
Explication du code:
robot.usb() est une instruction ZRobot, documentés dans votre kit ZRobot. Elle permet d'identifier si le câble USB est bien branché sur la carte PICSTAR. On envoie donc des information que dans le cas ou le robot est branché au PC. sprintf est une routine standard C et permet de formattes un texte. Un peut ainsi afficher le texte en hexadécimal, décimal, virgule flottante etc. Wikipedia vous indiquera plus de détails.  Format générique sprintf(variable," texte + format",variables);
CDC.print est la routine PINGUINO qui permet d'envoyer une chaine de caractères vers USB. Une variable indique la chaîne, et la seconde indique le nombre de caractères à envoyer. Si l'on utilise une chaîne terminée par ZERO, un peut calculer la longueur avec strlen(variable). Format générique CDC.print(variable,nombre_de_caractères).
Pour une documentation complète Pinguino, visiter le wiki Pinguino wiki.pinguino.cc/index.php/Main_Page
 
PINGUINO: voir logiciel sous http://www.hackinglab.org/
TERATERM: http://hp.vector.co.jp/authors/VA002416/teraterm.html
ZigoBot: www.zigobot.ch
sprintf: http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
 
 
 
 
 
 
Last Edit: 04 Avr 2011 07:25 by rolfz.
The administrator has disabled public write access.
Time to create page: 0.181 seconds
Powered by Kunena Forum