ロータリーエンコーダー読み取り+タイマー(あ、これyaw_plusと同じだったw)

Dependencies:   TextLCD mbed

Files at this revision

API Documentation at this revision

Comitter:
yal_kaiyo
Date:
Thu Jun 09 01:03:04 2016 +0000
Commit message:
???????????

Changed in this revision

TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r f3d65e123fda TextLCD.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Thu Jun 09 01:03:04 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/TextLCD/#a53b3e2d6f1e
diff -r 000000000000 -r f3d65e123fda main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jun 09 01:03:04 2016 +0000
@@ -0,0 +1,95 @@
+#include "mbed.h"
+#include "TextLCD.h"
+//#include "I2cLCD.h"
+
+DigitalOut myled1(LED1),myled2(LED2),myled3(LED3),myled4(LED4);
+AnalogIn rotary1(p15);
+Serial pc(USBTX,USBRX); //(USBTX,USBRX)
+Timer t1,t2;
+InterruptIn ch1(p16),ch2(p17);
+PwmOut yawyaw(p21),ch5out(p22);
+
+double t1_pwm;
+double t2_pwm;
+
+/////////////timer//////////////
+void t1_start(){
+  t1.start();
+}
+
+void t1_stop (){
+  t1.stop();
+   t1_pwm  =   t1.read();
+   t1.reset();
+}
+
+void t2_start(){
+  t2.start();
+}
+
+void t2_stop (){
+  t2.stop();
+   t2_pwm  =   t2.read();
+   t2.reset();
+}
+
+///////////////////////////////////
+
+
+
+
+int main(void){
+    
+    pc.baud(115200);
+
+    double yaw_gain_p = 0.001;
+    double yaw_s;
+    
+    ch1.rise(&t1_start) ;
+    ch1.fall(&t1_stop) ;
+     
+    ch2.rise(&t2_start) ;
+    ch2.fall(&t2_stop) ;
+    
+         
+    yawyaw.period(0.020);
+    
+    double rot_read = rotary1.read();
+    
+   
+        while(1){
+
+        
+            if (t2_pwm > 0.0015){
+
+                double yaw_error = (rotary1.read() - 0.4785);
+        
+                yaw_s = 0.00148 + yaw_gain_p * yaw_error;
+                
+                     if (yaw_s > 0.00175){yaw_s = 0.00175;}
+                     if (yaw_s < 0.0012){yaw_s = 0.0012;}
+                         
+        
+                //if (t2_pwm > 0.0015){
+                yawyaw.pulsewidth(yaw_s); // servo position determined by a pulsewidth between 1-2ms
+                
+                }
+    
+        
+            else{
+                yawyaw.pulsewidth(t1_pwm);}
+        
+                
+                 //lcd.locate(8,1);
+                //rot_read = (rotary1.read())*1000000;
+                //pc.printf("rotary1 = %f\r\n", rotary1.read());
+                pc.printf("yaw_s = %f\r\n", yaw_s);
+                pc.printf("t1_pwm = %f\r\n", t1_pwm);
+                pc.printf("t2_pwm = %f\r\n", t2_pwm);
+                //wait(1);
+                ch5out.pulsewidth(t2_pwm);
+        }
+    
+}
+    
+        
diff -r 000000000000 -r f3d65e123fda mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jun 09 01:03:04 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9114680c05da