ticker implemented

Dependencies:   mbed mbed-rtos

Revision:
2:27f60965e808
Parent:
1:79f80553947c
Child:
3:1e1a29557d8e
--- a/jikken.cpp	Fri Aug 28 08:24:53 2020 +0000
+++ b/jikken.cpp	Fri Aug 28 08:45:58 2020 +0000
@@ -15,7 +15,12 @@
 DigitalOut led4(LED4);
 
 Serial pc(USBTX, USBRX);
-Ticker arg;
+#define SampleFreq   60   // [Hz]
+Ticker          ticker;
+FILE* fp;
+
+int cnt;
+
 LocalFileSystem local("local");
 
 float aOut, bOut, cOut, dOut, eOut, fOut;//J123456 degree
@@ -68,28 +73,19 @@
     send_servo();
 }
 
-void move_attach(FILE* fp)
+void move_attach()
 {
-    for(int i=0;i<2548;i++)
-        {
-            led3=0.0;
-            //fscanf(fp, "%f,%f,%f\n",&Out[i][0],&Out[i][1],&Out[i][2]);
-            fscanf(fp, "%f,%f,%f\n",&aOut,&bOut,&cOut);
-            //Out[i][3]=0.0;
-            //Out[i][4]=0.0;
-            //Out[i][5]=0.0;
-            led3=1.0;
-            //aOut = Out[i][0];
-            //bOut = Out[i][1];
-            //cOut = Out[i][2];
-            dOut = 0.0;
-            eOut = 0.0;
-            fOut = 0.0;                                                
-            move();
-            wait(0.016);//wait
-        }
+    led3=0.0;
+    //fscanf(fp, "%f,%f,%f\n",&Out[i][0],&Out[i][1],&Out[i][2]);
+    if(fp!=NULL or cnt<2548)
+        fscanf(fp, "%f,%f,%f\n",&aOut,&bOut,&cOut);
+    cnt++;
+    led3=1.0;
+    dOut = 0.0;
+    eOut = 0.0;
+    fOut = 0.0;
+    move();
 }
-
 int main(void)
 {
     //pc.baud(115200);
@@ -109,7 +105,6 @@
     //float Out[2548][3];
     led2=1.0;
 
-    FILE* fp;
     char fname[] ="/local/xy14.csv";
     fp = fopen(fname, "r");
     if (fp == NULL)
@@ -124,17 +119,8 @@
     {
         led3=1.0;
         //pc.printf("moving\n");
-
-
-        //arg.attach(&move_attach,1/60);
-        move_attach(fp);
-   
-        
-        
-        fclose(fp);
-        #if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler
-            free(fp);
-        #endif
+        cnt = 0;
+        ticker.attach_us(eventFunc, 1000000.0f/SampleFreq);
         //led2=1.0;
         /*for(i=0;i<2548;i++)
         {