Compare commits

...

2 Commits

2 changed files with 22 additions and 23 deletions

View File

@ -1,12 +1,9 @@
De lart de déplacer un robot avec classe - Teleplot De lart de déplacer un robot avec classe - Câblage des codeurs
==================================================== ===============================================================
Le but est de vous proposer une série darticles vous présentant les arcanes du déplacement dun robot, en fournissant à chaque étape une idée de démonstration et les principales pistes de débogage. Les articles sont disponibles ici : [Wiki Eurobot](https://www.eurobot.org/wiki/fr/informatics/de_l_art_de_deplacer_son_robot_avec_classe) Le but est de vous proposer une série darticles vous présentant les arcanes du déplacement dun robot, en fournissant à chaque étape une idée de démonstration et les principales pistes de débogage. Les articles sont disponibles ici : [Wiki Eurobot](https://www.eurobot.org/wiki/fr/informatics/de_l_art_de_deplacer_son_robot_avec_classe)
Temps Câblage des codeurs
----- -------------------
Ajout de la gestion du temps à l'aide de trois fonctions simples. Le code principal permet de tester le bon fonctionnement des codeurs, afin de valider leur câblage.
- Une fonction qui incrémente notre temps de 1.
- Une fonction dinitialisation qui crée linterruption qui appellera notre fonction précédente toutes les 1 millisecondes.
- Une fonction qui renvoie le nombre de milliseconde écoulée depuis linitialisation.

32
main.c
View File

@ -25,22 +25,24 @@ void setup(void){
stdio_init_all(); stdio_init_all();
Teleplot_init(); Teleplot_init();
Temps_init(); Temps_init();
// Broches des codeur gérées en GPIO
gpio_init(11); // Codeur 1, voie A
gpio_init(12); // Codeur 1, voie B
gpio_init(2); // Codeur 2, voie A
gpio_init(3); // Codeur 2, voie B
// Broches des codeur en entrée
gpio_set_dir(11, false); // Codeur 1, voie A
gpio_set_dir(12, false); // Codeur 1, voie B
gpio_set_dir(2, false); // Codeur 2, voie A
gpio_set_dir(3, false); // Codeur 2, voie B
} }
void loop(void){ void loop(void){
static uint32_t temps_ms = 0; Teleplot_add_variable_int("Codeur1_A", gpio_get(11));
if(temps_ms != Temps_get_temps_ms()){ Teleplot_add_variable_int("Codeur1_B", gpio_get(12));
temps_ms = Temps_get_temps_ms(); Teleplot_add_variable_int("Codeur2_A", gpio_get(2));
// Toutes les 10 millisecondes, envoyer la valeur de "valeur" Teleplot_add_variable_int("Codeur2_B", gpio_get(3));
if(temps_ms % 10 == 0){ Teleplot_envoie_tampon();
Teleplot_add_variable_int("valeur", valeur);
Teleplot_envoie_tampon();
}
// Toutes les 500 millisecondes, inverser la valeur de "valeur"
if(temps_ms % 500 == 0){
valeur = -valeur;
Teleplot_envoie_tampon();
}
}
} }