TP4_exo1

Dependencies:   mbed

Committer:
mbedo
Date:
Thu Oct 23 12:17:14 2014 +0000
Revision:
0:762600c500ae
TP4_exo1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedo 0:762600c500ae 1 #include "mbed.h"
mbedo 0:762600c500ae 2
mbedo 0:762600c500ae 3 Serial pc(USBTX, USBRX); // On initialise la liaison série
mbedo 0:762600c500ae 4
mbedo 0:762600c500ae 5 InterruptIn codeurA(p9); // On utilise un InterruptIn car on veut détecter les fronts montatns du signal du codeur A
mbedo 0:762600c500ae 6 DigitalIn codeurB(p24); // On utilise un DigitalIn car on veut récuperer la valeur du signal du codeur B
mbedo 0:762600c500ae 7 int compteur=0;
mbedo 0:762600c500ae 8
mbedo 0:762600c500ae 9 void incream() // On défini une fonction incream qui incrémente positivement lorsque la valeur du codeur B vaut 1
mbedo 0:762600c500ae 10 { // et négativement lorqu'elle vaut 0
mbedo 0:762600c500ae 11 if(codeurB==0) {
mbedo 0:762600c500ae 12 compteur=compteur-1;
mbedo 0:762600c500ae 13 }
mbedo 0:762600c500ae 14 if(codeurB==1) {
mbedo 0:762600c500ae 15 compteur=compteur+1;
mbedo 0:762600c500ae 16 }
mbedo 0:762600c500ae 17 if(compteur>499) { // On filtre la valeur du compteur pour qu'elle soit comprise entre 0 et 499
mbedo 0:762600c500ae 18 compteur=0;
mbedo 0:762600c500ae 19 }
mbedo 0:762600c500ae 20 if(compteur<0) {
mbedo 0:762600c500ae 21 compteur=499;
mbedo 0:762600c500ae 22 }
mbedo 0:762600c500ae 23 }
mbedo 0:762600c500ae 24 int main()
mbedo 0:762600c500ae 25 {
mbedo 0:762600c500ae 26
mbedo 0:762600c500ae 27 while(1) {
mbedo 0:762600c500ae 28
mbedo 0:762600c500ae 29 codeurA.rise(&incream); // A chaque front montant la fonction incream incrémente ou decrémente la valeur position
mbedo 0:762600c500ae 30 pc.printf("Position : %d \r", compteur); // et l'affiche sur la liaison série
mbedo 0:762600c500ae 31 wait(0.1);
mbedo 0:762600c500ae 32 }
mbedo 0:762600c500ae 33 }