![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
protegemed, aquisição via A/D simples utilizando interrupção do timer
Dependencies: EthernetInterface NTPClient mbed-rtos mbed
Fork of ptgm_semDMA by
Diff: main.cpp
- 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