Onishi Itsuki / Mbed 2 deprecated mbed_PWM_control

Dependencies:   mbed

Revision:
4:9c39770e13e6
Parent:
3:e877a237c329
--- a/main.cpp	Thu Jul 16 05:59:32 2020 +0000
+++ b/main.cpp	Thu Jul 30 05:57:12 2020 +0000
@@ -5,16 +5,19 @@
 #include "mbed.h"
 
 #define START_BYTE 0x0f
+#define SAMPLING_PERIOD 5000.0f  // scale is us
 #define BYTE_A 2*i
 #define BYTE_B 2*i+1
 
 uint8_t buffer[8];
-int outputBuffer[12];
+
+int outputBuffer[12];  // for setting output 0 or 1 to each Digital
 int bufferIndex = 0;
 int outProcCounter = 0;
 int outProcFlag = 0;
 
 Ticker ticker;
+Ticker input_test_data;
 Serial pc(USBTX, USBRX);
 DigitalOut  stateChecker(LED1);
 DigitalOut startByteError(LED3);
@@ -38,12 +41,12 @@
 void set_test_buffer(void)
 {
     buffer[0] = 31;
-    buffer[1] = 250;
-    buffer[2] = 200;
-    buffer[3] = 150;
-    buffer[4] = 100;
-    buffer[5] = 50;
-    buffer[6] = 10;
+    buffer[1] = 100;
+    buffer[2] = 50;
+    buffer[3] = 10;
+    buffer[4] = 228;
+    buffer[5] = 178;
+    buffer[6] = 138;
     buffer[7] = 248;
 }
 
@@ -80,26 +83,26 @@
 
 void PWM_processor(void)
 {
-//    for(int i=0; i<6; i++) {
-//        if((buffer[i+1]==0) || (buffer[i+1]==128)) {
-//            outputBuffer[BYTE_A] = 0;
-//            outputBuffer[BYTE_B] = 0;
-//            continue;
-//        }
-//
-//        if(buffer[i+1]>128) {
-//            outputBuffer[BYTE_A] = 0;
-//            outputBuffer[BYTE_B] = 1;
-//        } else {
-//            outputBuffer[BYTE_A] = 1;
-//            outputBuffer[BYTE_B] = 0;
-//        }
-//
-//        // decrement
-//        if (buffer[i+1] > 0)
-//            buffer[i+1]--;
-//    }
-//    set_output();
+    for(int i=0; i<6; i++) {
+        if((buffer[i+1]==0) || (buffer[i+1]==128)) {
+            outputBuffer[BYTE_A] = 0;
+            outputBuffer[BYTE_B] = 0;
+            continue;
+        }
+
+        if(buffer[i+1]>128) {
+            outputBuffer[BYTE_A] = 0;
+            outputBuffer[BYTE_B] = 1;
+        } else {
+            outputBuffer[BYTE_A] = 1;
+            outputBuffer[BYTE_B] = 0;
+        }
+
+        // decrement
+        if (buffer[i+1] > 0)
+            buffer[i+1]--;
+    }
+    set_output();
 }
 
 
@@ -109,7 +112,6 @@
 
     // For test
     bufferIndex = 8;
-    set_test_buffer();
 //    for(int i=0; i<8; i++){
 //        pc.printf("%d:%d ", i, buffer[i]);
 //    }
@@ -161,7 +163,8 @@
     init_state();
     wait(1);
     pc.printf("+");
-    ticker.attach_us(PWM_processor, 500.0f/39.0f);
+    ticker.attach_us(&PWM_processor, SAMPLING_PERIOD/128.0f);
+    input_test_data.attach_us(&set_test_buffer, SAMPLING_PERIOD);
     pc.printf("+");
 
     while(1) {
@@ -172,10 +175,10 @@
 //        }
 
 //      code for test
-//        if(test_count%1 == 0) {
+        if(test_count%1000 == 0) {
         pc.printf("+");
-//            test_count = 0;
-//        }
+            test_count = 0;
+        }
 //      end of code for test
 
     }