]> Pileus Git - ~andy/csm213a-hw/blobdiff - yue/ascii.cpp
Update main file add DMA code
[~andy/csm213a-hw] / yue / ascii.cpp
diff --git a/yue/ascii.cpp b/yue/ascii.cpp
new file mode 100644 (file)
index 0000000..629f5e4
--- /dev/null
@@ -0,0 +1,93 @@
+/*---------------------------------------------------------------\r
+  ## Receive Interruption of the Serial ##\r
+  -> used to receive & process user command\r
+  -> and configure the board accordingly\r
+  ---------------------------------------------------------------*/\r
+/*void serialRx_interrupt_userFriendlyVersion(){\r
+    clock1.detach();                // close the interrupt\r
+    serial.printf("\r\n");\r
+\r
+    // Receive the Serial Input\r
+    float interval;\r
+    char buffer[255];\r
+    char temp[255];\r
+    char ch = serial.getc();\r
+    int i;\r
+    for (i=0 ; ch!='\n' && ch!='\r'; i++){\r
+        serial.putc(ch);\r
+        buffer[i] = ch;\r
+        if (ch==127){                // BackSpace\r
+            i--;\r
+            i--;\r
+        }\r
+        ch = serial.getc();\r
+    }\r
+    buffer[i] = '\0';\r
+    serial.printf("\r\nBUFFER: %s %d\r\n", buffer,i);\r
+    // TODO: buffer -> lower case\r
+\r
+    // Process the Serial Input\r
+    // Set-Interval Command\r
+    if (strstr(buffer, "set")!=NULL && strstr(buffer, "int")!= NULL){\r
+        sscanf(buffer, "%*[^0123456789.]%s", temp);       // find the number in buffer\r
+        sscanf(temp, "%f", &interval);                    // translate into float\r
+        if (interval<0.1 || interval>5){\r
+            interval  = 1;\r
+        }\r
+        if (strstr(buffer, "acc")){\r
+            accTmr = interval;\r
+        }\r
+        if (strstr(buffer, "mag")){\r
+            magTmr = interval;\r
+        }\r
+        if (strstr(buffer, "light")){\r
+            lgtTmr = interval;\r
+        }\r
+        if (strstr(buffer, "touch")){\r
+            tchTmr = interval;\r
+        }\r
+    }\r
+\r
+    // Stop Command\r
+    else if (strstr(buffer, "stop")!= NULL){\r
+        serial.printf("STOP\r\n");\r
+        if (strstr(buffer, "acc")){\r
+            accEnable = false;\r
+            accTmr = ACC_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "mag")){\r
+            magEnable = false;\r
+            magTmr = MAG_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "light")){\r
+            lgtEnable = false;\r
+            lgtTmr = LGT_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "touch")){\r
+            tchEnable = false;\r
+            tchTmr = TCH_SNS_DEFAULT;\r
+        }\r
+    }\r
+\r
+    // Start Command\r
+    else if (strstr(buffer, "start")!=NULL){\r
+        if (strstr(buffer, "acc") && !accEnable){\r
+            accEnable = true;\r
+            accTmr = ACC_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "mag") && !magEnable){\r
+            magEnable = true;\r
+            magTmr = MAG_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "light") && !lgtEnable){\r
+            lgtEnable = true;\r
+            lgtTmr = LGT_SNS_DEFAULT;\r
+        }\r
+        if (strstr(buffer, "touch") && !tchEnable){\r
+            tchEnable = true;\r
+            tchTmr = TCH_SNS_DEFAULT;\r
+        }\r
+    }\r
+    clock1.attach(&clock1_interrupt,TIME_ACCURACY);\r
+}\r
+*/\r