thibault lottin
/
TP4_exo1
TP4_exo1
Position_Moteur.cpp@0:762600c500ae, 2014-10-23 (annotated)
- Committer:
- mbedo
- Date:
- Thu Oct 23 12:17:14 2014 +0000
- Revision:
- 0:762600c500ae
TP4_exo1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |