Robotics Lab Servo

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
cpul5338
Date:
Mon Mar 19 09:12:35 2018 +0000
Commit message:
Robotics_Lab_Servo

Changed in this revision

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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Mar 19 09:12:35 2018 +0000
@@ -0,0 +1,59 @@
+#include "mbed.h"
+
+//****************************************************************************** Define
+//The number will be compiled as type "double" in default
+//Add a "f" after the number can make it compiled as type "float"
+#define Ts 0.01f    //period of timer1 (s)
+#define Servo_Period 20
+//****************************************************************************** End of Define
+
+//****************************************************************************** I/O
+//PWM
+PwmOut servo(A0);
+//Timer Setting
+Ticker timer;
+//****************************************************************************** End of I/O
+
+//****************************************************************************** Functions
+void init_timer(void);
+void init_PWM(void);
+void timer_interrupt(void);
+//****************************************************************************** End of Functions
+
+//****************************************************************************** Variables
+// Servo
+float servo_duty = 0.066; // 0.025~0.115(-90~+90)(not linear, so the experiment is needed)
+//****************************************************************************** End of Variables
+
+//****************************************************************************** Main
+int main()
+{
+    init_timer();
+    init_PWM();
+    while(1)
+    {
+    }
+}
+//****************************************************************************** End of Main
+
+//****************************************************************************** timer_interrupt
+void timer_interrupt()
+{
+    // Code for servo motor    
+}
+//****************************************************************************** End of timer_interrupt
+
+//****************************************************************************** init_timer
+void init_timer()
+{
+     timer.attach_us(&timer_interrupt, 10000);//10ms interrupt period (100 Hz)
+}
+//****************************************************************************** End of init_timer
+
+//****************************************************************************** init_PWM
+void init_PWM()
+{
+    servo.period_ms(Servo_Period);
+    servo.write(servo_duty);
+}
+//****************************************************************************** End of init_PWM
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Mar 19 09:12:35 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/aa5281ff4a02
\ No newline at end of file