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

Revision:
0:90de1fecdd06
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jan 19 00:58:14 2012 +0000
@@ -0,0 +1,77 @@
+// mRMCS06 sens1 count
+// mbed RailModelContorolSystem
+
+#include "mbed.h"
+#include "TextLCD0420.h"
+
+#define ON 1
+#define OFF 0
+#define XON 0
+#define XOFF 1
+
+DigitalOut mled1(LED1);
+DigitalOut mled2(LED2);
+DigitalOut mled3(LED3);
+DigitalOut mled4(LED4);
+AnalogIn vr1_adc(p15);
+AnalogIn vr2_adc(p16);
+DigitalIn sens1(p17);
+DigitalIn sens2(p18);
+DigitalIn sens3(p19);
+PwmOut r1_pwm(p22);
+PwmOut r2_pwm(p23);
+DigitalOut po10(p5);
+DigitalOut po11(p6);
+DigitalOut po20(p7);
+DigitalOut po21(p8);
+
+TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
+
+float pduty,pduty_slow;
+
+void notch(float duty){
+  r1_pwm.write(duty);
+  r2_pwm.write(0);
+}
+
+void r_notch(float duty){
+  r1_pwm.write(0);
+  r2_pwm.write(duty);
+}
+
+int main() {      
+  int i,count;
+  float pduty;
+  r1_pwm.pulsewidth(0.000001);//1us=0.000001
+  r1_pwm.period(0.00001);//1ms=0.001s
+  r2_pwm.pulsewidth(0.000001);//1us=0.000001
+  r2_pwm.period(0.00001);//1ms=0.001s
+
+  count=0;
+  lcd.cls();
+  lcd.locate(0,0);
+  lcd.printf("** mbed RMCS06 **");
+  lcd.locate(0,1);
+  lcd.printf("count:%3d",count);
+  
+  
+  while(1){
+      pduty=vr1_adc.read();
+      notch(pduty);
+      if(sens1==XON){
+        count++;
+        lcd.locate(0,1);
+        lcd.printf("count:%3d",count);
+        lcd.locate(0,2);
+        lcd.printf("sens1 ON  ");
+        while(sens1==XON){
+        }        
+      }
+      else{
+      lcd.locate(0,2);
+        lcd.printf("sens1 OFF");
+      }
+      wait(0.1); 
+  }//while
+     
+}//main