エレキジャックweb mbed入門 mbed RMCS鉄道模型自動制御システム 課題6です。センサ1により列車の周回数をカウントします。

Committer:
takeuchi
Date:
Thu Jan 19 00:58:14 2012 +0000
Revision:
0:90de1fecdd06

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:90de1fecdd06 1 // mRMCS06 sens1 count
takeuchi 0:90de1fecdd06 2 // mbed RailModelContorolSystem
takeuchi 0:90de1fecdd06 3
takeuchi 0:90de1fecdd06 4 #include "mbed.h"
takeuchi 0:90de1fecdd06 5 #include "TextLCD0420.h"
takeuchi 0:90de1fecdd06 6
takeuchi 0:90de1fecdd06 7 #define ON 1
takeuchi 0:90de1fecdd06 8 #define OFF 0
takeuchi 0:90de1fecdd06 9 #define XON 0
takeuchi 0:90de1fecdd06 10 #define XOFF 1
takeuchi 0:90de1fecdd06 11
takeuchi 0:90de1fecdd06 12 DigitalOut mled1(LED1);
takeuchi 0:90de1fecdd06 13 DigitalOut mled2(LED2);
takeuchi 0:90de1fecdd06 14 DigitalOut mled3(LED3);
takeuchi 0:90de1fecdd06 15 DigitalOut mled4(LED4);
takeuchi 0:90de1fecdd06 16 AnalogIn vr1_adc(p15);
takeuchi 0:90de1fecdd06 17 AnalogIn vr2_adc(p16);
takeuchi 0:90de1fecdd06 18 DigitalIn sens1(p17);
takeuchi 0:90de1fecdd06 19 DigitalIn sens2(p18);
takeuchi 0:90de1fecdd06 20 DigitalIn sens3(p19);
takeuchi 0:90de1fecdd06 21 PwmOut r1_pwm(p22);
takeuchi 0:90de1fecdd06 22 PwmOut r2_pwm(p23);
takeuchi 0:90de1fecdd06 23 DigitalOut po10(p5);
takeuchi 0:90de1fecdd06 24 DigitalOut po11(p6);
takeuchi 0:90de1fecdd06 25 DigitalOut po20(p7);
takeuchi 0:90de1fecdd06 26 DigitalOut po21(p8);
takeuchi 0:90de1fecdd06 27
takeuchi 0:90de1fecdd06 28 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:90de1fecdd06 29
takeuchi 0:90de1fecdd06 30 float pduty,pduty_slow;
takeuchi 0:90de1fecdd06 31
takeuchi 0:90de1fecdd06 32 void notch(float duty){
takeuchi 0:90de1fecdd06 33 r1_pwm.write(duty);
takeuchi 0:90de1fecdd06 34 r2_pwm.write(0);
takeuchi 0:90de1fecdd06 35 }
takeuchi 0:90de1fecdd06 36
takeuchi 0:90de1fecdd06 37 void r_notch(float duty){
takeuchi 0:90de1fecdd06 38 r1_pwm.write(0);
takeuchi 0:90de1fecdd06 39 r2_pwm.write(duty);
takeuchi 0:90de1fecdd06 40 }
takeuchi 0:90de1fecdd06 41
takeuchi 0:90de1fecdd06 42 int main() {
takeuchi 0:90de1fecdd06 43 int i,count;
takeuchi 0:90de1fecdd06 44 float pduty;
takeuchi 0:90de1fecdd06 45 r1_pwm.pulsewidth(0.000001);//1us=0.000001
takeuchi 0:90de1fecdd06 46 r1_pwm.period(0.00001);//1ms=0.001s
takeuchi 0:90de1fecdd06 47 r2_pwm.pulsewidth(0.000001);//1us=0.000001
takeuchi 0:90de1fecdd06 48 r2_pwm.period(0.00001);//1ms=0.001s
takeuchi 0:90de1fecdd06 49
takeuchi 0:90de1fecdd06 50 count=0;
takeuchi 0:90de1fecdd06 51 lcd.cls();
takeuchi 0:90de1fecdd06 52 lcd.locate(0,0);
takeuchi 0:90de1fecdd06 53 lcd.printf("** mbed RMCS06 **");
takeuchi 0:90de1fecdd06 54 lcd.locate(0,1);
takeuchi 0:90de1fecdd06 55 lcd.printf("count:%3d",count);
takeuchi 0:90de1fecdd06 56
takeuchi 0:90de1fecdd06 57
takeuchi 0:90de1fecdd06 58 while(1){
takeuchi 0:90de1fecdd06 59 pduty=vr1_adc.read();
takeuchi 0:90de1fecdd06 60 notch(pduty);
takeuchi 0:90de1fecdd06 61 if(sens1==XON){
takeuchi 0:90de1fecdd06 62 count++;
takeuchi 0:90de1fecdd06 63 lcd.locate(0,1);
takeuchi 0:90de1fecdd06 64 lcd.printf("count:%3d",count);
takeuchi 0:90de1fecdd06 65 lcd.locate(0,2);
takeuchi 0:90de1fecdd06 66 lcd.printf("sens1 ON ");
takeuchi 0:90de1fecdd06 67 while(sens1==XON){
takeuchi 0:90de1fecdd06 68 }
takeuchi 0:90de1fecdd06 69 }
takeuchi 0:90de1fecdd06 70 else{
takeuchi 0:90de1fecdd06 71 lcd.locate(0,2);
takeuchi 0:90de1fecdd06 72 lcd.printf("sens1 OFF");
takeuchi 0:90de1fecdd06 73 }
takeuchi 0:90de1fecdd06 74 wait(0.1);
takeuchi 0:90de1fecdd06 75 }//while
takeuchi 0:90de1fecdd06 76
takeuchi 0:90de1fecdd06 77 }//main