protegemed, aquisição via A/D simples utilizando interrupção do timer

Dependencies:   EthernetInterface NTPClient mbed-rtos mbed

Fork of ptgm_semDMA by Marcelo Rebonatto

Revision:
1:8129536051df
Parent:
0:fac116e94d44
--- a/main.cpp	Tue Jan 05 11:47:35 2016 +0000
+++ b/main.cpp	Wed Jan 13 18:53:25 2016 +0000
@@ -4,7 +4,7 @@
     
 */
 
-#define MSGWINDOW "Version 4"
+#define MSGWINDOW "Version 5"
 
 #include <stdio.h>
 
@@ -51,10 +51,12 @@
 }
 
 int main() {
+    
+    
     float inicio, fim, maior, menor, dif;
     float inicioc, fimc, maiorc, menorc, difc;
     Timer t,tc;
-        
+    /* 
     if ((LPC_WDT->WDMOD >> 2) & 1){
         //myled4 = 1; 
         PmedLog::WriteEntry(PMEDLOG_INITIALIZINGWDT);
@@ -62,19 +64,22 @@
     else{        
         //myled3 = 1;
         PmedLog::WriteEntry(PMEDLOG_INITIALIZING);
-    }
+    }*/
 
     printf("\r\n %s \r\n", MSGWINDOW);
+    
     FILE *f;
     
-    Settings::ReadFile();    
-    
+    Settings::ReadFile();
+    printf("\r\n\nCANAL\tOFFSET\t\tGAIN");
+
     InitializeEthernetLink();
     printf("Inicializou link Ethernet\n");
     
     //Start HTTP POST service
     Thread http_post(HttpPost::HttpPost_Thread);        
-           
+    
+        
     //Start Telnet Service
     //Thread telnetserver(TelnetServer::TelnetServer_Thread);
     
@@ -93,25 +98,26 @@
     printf(PMEDLOG_INITIALIZINGWDT);
     printf("\n\n");
             
-    PmedLog::WriteEntry(PMEDLOG_STARTED);
+    //PmedLog::WriteEntry(PMEDLOG_STARTED);
     
-    /* start test WahtchDog */
-    DigitalOut led1(LED1);
-    int i, n = 0;
+    /* start test WatchDog */
+
+    int n = 0;
     //int tatual, tnovo;
     float rms[NUMBER_OF_CHANNELS], mv2[NUMBER_OF_CHANNELS];
     int under[NUMBER_OF_CHANNELS], over[NUMBER_OF_CHANNELS];
     
-    wdt.kick(10.0);  
+    //wdt.kick(10.0);  
     
-    //Capture::Initialize();
-       
+    Capture::InitializeAD();
+    int cont1 = 0; 
+    
     while(1)    
     {
-        tranca.wait();
+        /*tranca.wait();
         t.start();
         inicio = t.read();
-                
+          */      
         //get sample values from 6 channels
         Capture::AcquireValues();
         
@@ -127,13 +133,29 @@
             menor = dif;         
         t.reset();
         t.stop();           
-        tranca.release();
+        //tranca.release();
         
-        tranca.wait();
+        //tranca.wait();
         tc.start();
         inicioc = tc.read();
         // Calcula o RMS dos 6 canais
         SignalProcessor::CalculateRMSBulk(rms, mv2, under, over);
+        /*
+        printf("\r\n\nCANAL\tOFFSET\t\tGAIN");
+        for (int i=0;i<6;i++)
+        {
+            printf("\r\n%d\t%d\t\t%4.2f", i, Settings::get_Offset(i), Settings::get_Gain(i));
+        }
+        
+        
+        printf("\r\n\n\tRMS\t\tMV2\t\tUNDER\t\tOVER");
+        for (int i=0;i<6;i++)
+        {
+            printf("\r\n%d\t%4.2f\t\t%4.2f\t\t%d\t\t%d", i, rms[i], mv2[i], under[i], over[i]);
+        }
+        printf("\n");
+        */
+        
         fimc = tc.read();
         difc = fimc-inicioc;
         
@@ -145,7 +167,7 @@
         if (difc < menorc)
             menorc = difc;                    
                 
-        for(i=0;i<6;i++){
+        for(int i=0;i<6;i++){
             EventDetector::get_Detector(i).ProcessEvent(rms[i], mv2[i], under[i], over[i]);
         }
 
@@ -153,7 +175,7 @@
         if(n % 60 == 0)
         {
             printf("%.2f %.0f %.2f %.0f\t%.2f %.0f %.2f %.0f\t%.2f %.0f %.2f %.0f\n",rms[0], mv2[0],rms[1],mv2[1],rms[2],mv2[2],rms[3],mv2[3],rms[4],mv2[4],rms[5],mv2[5]);
-            led1 = !led1;            
+            //led1 = !led1;            
          //   n=0;    
                                     
             PmedLog::Mark();            
@@ -164,10 +186,10 @@
         }
         
         // End of main loop so "kick" to reset watchdog timer and avoid a reset
-        wdt.kick();        
+        //wdt.kick();        
         tc.reset();
         tc.stop();
-        tranca.release();
+        //tranca.release();
     }    
        
     while(1){//never reaches here