OSDN Git Service

Optimazed the delay constant of AD convertor and PWM module
[ito-manager/ito-manager4.2.git] / ITOManager4.2 / src / main.js
index 1b69a52..dc0a9fc 100644 (file)
@@ -32,15 +32,15 @@ var nPWMCount = 0;
 var xPWMBasisSinWaveValue = 0.0;\r
 var xPWMOutAmp = 3.3/2;\r
 var xPWMOutOffset =0.0;\r
-var nPWMMode = 2; //1:SineWave; 2:TriangleWave; 3:SquareWave\r
+var nPWMMode = 1; //1:SineWave; 2:TriangleWave; 3:SquareWave\r
 \r
 const deviceID = K4.deviceID;\r
 \r
-const nAnalogMeasureInterval = 30; //ms\r
+const nAnalogMeasureInterval = 50; //ms\r
 const nDataUploadInterval=30000; //ms\r
 const nGetCommandInterval=1000; //ms\r
 const nDisplayInterval=1000; //ms\r
-const nPWMInterval=20; //ms\r
+const nPWMInterval=40; //ms\r
 const xPWMOutMaxVoltage = 3.3; //V\r
 const xPWMOffsetVoltage = xPWMOutMaxVoltage/2; //V\r
 const nAccumAD1=4;\r
@@ -138,6 +138,7 @@ Pins.invoke("setPinMux", {
                                                //Pins.repeat("/analogSensor2/read", 3, value => Analog2ValueChanged(value));\r
                                                //Pins.share("ws", {zeroconf: true, name: "analog-temperature"});\r
                                                application.invoke(new Message("/AnalogMeasureTimer"));\r
+                                               application.invoke(new Message("/PWMTimer"));\r
                                                //                   Pins.invoke("/pwmSensor/write", 0.5); // you should only pass in one number for an LED\r
                                                 }else{\r
                                                 \r
@@ -150,7 +151,7 @@ Pins.invoke("setPinMux", {
         application.invoke(new Message("/GetCommandTimer"));\r
         application.invoke(new Message("/DisplayTimer"));\r
 \r
-               application.invoke(new Message("/PWMTimer"));\r
+               \r
 //--sub routine --                             \r
        \r
 function TemperatureValueChanged(value){\r
@@ -214,8 +215,9 @@ function PWMOut(value){
        if(nPWMMode ==1 ){\r
        //Sinewave\r
                voltage = value*xPWMOutAmp + xPWMOutOffset;\r
-               log("Founction Voltage:"+voltage);\r
+       //      log("Founction Voltage:"+voltage);\r
        }\r
+       \r
        if(nPWMMode ==3 || nPWMMode == 2){\r
        //SquareWave Generate ; duty 50% only\r
                let sqvoltage\r
@@ -238,10 +240,10 @@ function PWMOut(value){
 \r
                \r
        let pwmVoltage = voltage + xPWMOffsetVoltage;\r
-       log("PWM Voltage:"+pwmVoltage);\r
+       //log("PWM Voltage:"+pwmVoltage);\r
        let xPwmValue = pwmVoltage/3.3;\r
-       log("PWM Value:"+xPwmValue);\r
-       //Pins.invoke("/pwmSensor/write", xPwmValue); \r
+       //log("PWM Value:"+xPwmValue);\r
+       Pins.invoke("/pwmSensor/write", xPwmValue); \r
 }\r
 \r
 \r
@@ -446,19 +448,21 @@ Handler.bind("/KinomaGetCommand", {
 Handler.bind("/PWMTimer", {\r
     onInvoke: function(handler, message){\r
        xPWMBasisSinWaveValue = Math.sin(nPWMCount/nPeriodPWMCount*Math.PI*2);\r
-       log(nPWMCount +" : "+ xPWMBasisSinWaveValue)\r
+//     log(nPWMCount +" : "+ xPWMBasisSinWaveValue)\r
     nPWMCount = nPWMCount +1;\r
     PWMOut(xPWMBasisSinWaveValue);\r
     \r
-    if (nPWMCount == nPeriodPWMCount) {\r
+    if (nPWMCount >= nPeriodPWMCount) {\r
        //Reset Counter\r
        nPWMCount = 0;\r
        trianglevoltage = 0.0;  \r
     }\r
-           handler.invoke( new Message("/delayPWM?duration=" +nPWMInterval ));\r
-    log("TimerPWM\n");\r
+    handler.invoke( new Message("/delayPWM?duration=" +(nPWMInterval-8) ));\r
+       log("TimerPWM " + nPWMCount + "\n");\r
+\r
     },\r
     onComplete: function(handler, message){\r
+\r
     }\r
 });\r
 \r