エレキジャックweb mbed入門 mbed RMCS鉄道模型自動制御システム 課題2です。20秒ごとに前進後進を入れ替える反転運転を行います。

Committer:
takeuchi
Date:
Thu Jan 19 00:48:16 2012 +0000
Revision:
0:679ed6de4c01

        

Who changed what in which revision?

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