Nucleo F303K8とSG90を用いたサーボ信号変更における処理時間の測定

Dependencies:   mbed

Committer:
RyotaNakamura
Date:
Thu Feb 09 11:00:42 2017 +0000
Revision:
0:e7072f95dcaf
Nucleo F303K8?SG90??????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RyotaNakamura 0:e7072f95dcaf 1 #include "mbed.h"
RyotaNakamura 0:e7072f95dcaf 2
RyotaNakamura 0:e7072f95dcaf 3 #define ON 1
RyotaNakamura 0:e7072f95dcaf 4 #define OFF 0
RyotaNakamura 0:e7072f95dcaf 5
RyotaNakamura 0:e7072f95dcaf 6 PwmOut servo1(D10);
RyotaNakamura 0:e7072f95dcaf 7 Serial pc(USBTX, USBRX);
RyotaNakamura 0:e7072f95dcaf 8 Timer timer1;
RyotaNakamura 0:e7072f95dcaf 9 Timer timer2;
RyotaNakamura 0:e7072f95dcaf 10
RyotaNakamura 0:e7072f95dcaf 11 int main()
RyotaNakamura 0:e7072f95dcaf 12 {
RyotaNakamura 0:e7072f95dcaf 13 float pwidth;
RyotaNakamura 0:e7072f95dcaf 14 int miri=1000;
RyotaNakamura 0:e7072f95dcaf 15 servo1.period_ms(20);// pulse cycle = 20ms
RyotaNakamura 0:e7072f95dcaf 16
RyotaNakamura 0:e7072f95dcaf 17 while(1) {
RyotaNakamura 0:e7072f95dcaf 18 for(pwidth=0.001; pwidth<=0.002; pwidth+=0.000001) { // 1ms ~ 2ms
RyotaNakamura 0:e7072f95dcaf 19 timer1.reset();
RyotaNakamura 0:e7072f95dcaf 20 timer1.start();
RyotaNakamura 0:e7072f95dcaf 21 servo1.pulsewidth(pwidth); // pulse servo out
RyotaNakamura 0:e7072f95dcaf 22 timer1.stop();
RyotaNakamura 0:e7072f95dcaf 23 float t1=timer1.read();
RyotaNakamura 0:e7072f95dcaf 24 float time1=t1*miri;
RyotaNakamura 0:e7072f95dcaf 25 pc.printf("time1= %f ms\n",time1);
RyotaNakamura 0:e7072f95dcaf 26 wait(0.001);
RyotaNakamura 0:e7072f95dcaf 27 }
RyotaNakamura 0:e7072f95dcaf 28
RyotaNakamura 0:e7072f95dcaf 29 for(pwidth=0.002; pwidth>=0.001; pwidth-=0.000001) { // 1ms ~ 2ms
RyotaNakamura 0:e7072f95dcaf 30 timer2.reset();
RyotaNakamura 0:e7072f95dcaf 31 timer2.start();
RyotaNakamura 0:e7072f95dcaf 32 servo1.pulsewidth(pwidth); // pulse servo out
RyotaNakamura 0:e7072f95dcaf 33 timer2.stop();
RyotaNakamura 0:e7072f95dcaf 34 float t2=timer2.read();
RyotaNakamura 0:e7072f95dcaf 35 float time2=t2*miri;
RyotaNakamura 0:e7072f95dcaf 36 pc.printf("time2= %f ms\n",time2);
RyotaNakamura 0:e7072f95dcaf 37 wait(0.001);
RyotaNakamura 0:e7072f95dcaf 38 }
RyotaNakamura 0:e7072f95dcaf 39 }
RyotaNakamura 0:e7072f95dcaf 40 }