koubou no program death.

Dependencies:   mbed

Committer:
kambara1415
Date:
Fri Aug 28 05:04:23 2015 +0000
Revision:
0:e814f5861f7c
koubou no prog.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kambara1415 0:e814f5861f7c 1 #include "mbed.h"
kambara1415 0:e814f5861f7c 2
kambara1415 0:e814f5861f7c 3 Serial pc(USBTX, USBRX);
kambara1415 0:e814f5861f7c 4 Ticker serial_time;
kambara1415 0:e814f5861f7c 5 DigitalIn encoderA(p19);
kambara1415 0:e814f5861f7c 6 DigitalIn encoderB(p18);
kambara1415 0:e814f5861f7c 7
kambara1415 0:e814f5861f7c 8 int AB = 0;
kambara1415 0:e814f5861f7c 9 int pre_AB = 0;
kambara1415 0:e814f5861f7c 10 int count = 0;
kambara1415 0:e814f5861f7c 11 double deg = 0;
kambara1415 0:e814f5861f7c 12
kambara1415 0:e814f5861f7c 13 void output(){
kambara1415 0:e814f5861f7c 14 pc.printf("count = %d\ndistance = %.1lf\nAB = %d", count, deg, AB);
kambara1415 0:e814f5861f7c 15 }
kambara1415 0:e814f5861f7c 16
kambara1415 0:e814f5861f7c 17 int main() {
kambara1415 0:e814f5861f7c 18 serial_time.attach(&output, 1.0);
kambara1415 0:e814f5861f7c 19 while(1) {
kambara1415 0:e814f5861f7c 20 AB = 00;
kambara1415 0:e814f5861f7c 21 if(encoderA) AB += 10;
kambara1415 0:e814f5861f7c 22 if(encoderB) AB += 01;
kambara1415 0:e814f5861f7c 23
kambara1415 0:e814f5861f7c 24 if(AB == 00){
kambara1415 0:e814f5861f7c 25 if(pre_AB == 10) count++;
kambara1415 0:e814f5861f7c 26 if(pre_AB == 01) count--;
kambara1415 0:e814f5861f7c 27 }
kambara1415 0:e814f5861f7c 28 if(AB == 01){
kambara1415 0:e814f5861f7c 29 if(pre_AB == 00) count++;
kambara1415 0:e814f5861f7c 30 if(pre_AB == 11) count--;
kambara1415 0:e814f5861f7c 31 }
kambara1415 0:e814f5861f7c 32 if(AB == 10){
kambara1415 0:e814f5861f7c 33 if(pre_AB == 11) count++;
kambara1415 0:e814f5861f7c 34 if(pre_AB == 00) count--;
kambara1415 0:e814f5861f7c 35 }
kambara1415 0:e814f5861f7c 36 if(AB == 11){
kambara1415 0:e814f5861f7c 37 if(pre_AB == 01) count++;
kambara1415 0:e814f5861f7c 38 if(pre_AB == 10) count--;
kambara1415 0:e814f5861f7c 39 }
kambara1415 0:e814f5861f7c 40 deg = (double)count * 0.25;
kambara1415 0:e814f5861f7c 41 pre_AB = AB;
kambara1415 0:e814f5861f7c 42 }
kambara1415 0:e814f5861f7c 43 }