teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
20:da1b8d80ba00
Parent:
7:ae9c47f62946
Child:
21:b9315cdd9275
--- a/IRPack.cpp	Sat Jan 27 22:34:14 2018 +0000
+++ b/IRPack.cpp	Mon Jan 29 14:22:38 2018 +0000
@@ -23,16 +23,20 @@
 }
 
 uint16_t pulseDuration_us(bool high,DigitalIn pin,unsigned long int timeout){
- unsigned long int duration; 
- IrTmr.reset();
- IrTmr.start();
- 
+ //unsigned long int durationBefore, duration; 
+ unsigned long int duration;
+ //IrTmr.reset();
+ //IrTmr.start();
+
+ //durationBefore = us_ticker_read();
+ duration=0;
  do{
-    duration = IrTmr.read_us();    
+    duration++;
+    wait_us(1);
  }while((duration < timeout) && (pin==high));
  
  
- IrTmr.stop();
+ //IrTmr.stop();
  if(duration < timeout){
      return duration;
  }
@@ -50,8 +54,10 @@
     float sd4Duty = SD4.read();
     float sd5Duty = SD5.read();
     float sd6Duty = SD6.read();
+    unsigned long int duration;
     float frequencia = freq*1000.0;
     float periodo = 1000000.0/frequencia;    
+    
     PwmOut *SD;    
     switch(port){
         case 0:
@@ -92,12 +98,30 @@
     if(startBitAlto!=65535){wait_us(startBitAlto);}
     SD->write(0.0);
     if(startBitBaixo!=65535){wait_us(startBitBaixo);}*/
+
+    /*for(i=0;i<indexIr;i++){
+        SD->write(0.5);
+        if(bitAlto[i]!=65535){
+            duration = us_ticker_read();
+            while((us_ticker_read()-duration)<bits[i][0]);
+        }
+        SD->write(0.0);
+        if(bitBaixo[i]!=65535){
+            duration = us_ticker_read();
+            while((us_ticker_read()-duration)<bits[i][1]);    
+        }        
+    }*/    
+
     for(i=0;i<indexIr;i++){
         SD->write(0.5);
-        if(bitAlto[i]!=65535){wait_us(bits[i][0]);}
+        if(bitAlto[i]!=65535){
+            wait_us(bits[i][0]);
+        }
         SD->write(0.0);
-        if(bitBaixo[i]!=65535){wait_us(bits[i][1]);}        
-    }  
+        if(bitBaixo[i]!=65535){
+            wait_us(bits[i][1]);    
+        }        
+    }
 
     pc.printf("Finalizado o envio IR.\r\n");
     SD1.period_us(pwmPeriod);
@@ -198,7 +222,7 @@
         if((irInAntes!=IrIn) && (!IrIn)){           
             bits[0][0] = pulseDuration_us(0,IrIn,10000);
             bits[0][1] = pulseDuration_us(1,IrIn,10000);
-            if((bits[0][0]>1000)&&(bits[0][1]>1000)){
+            if((bits[0][0]>100)&&(bits[0][1]>100)){
                 indexIr = 1;
                 do{
                     bits[indexIr][0] = pulseDuration_us(0,IrIn,10000);