delay between rf433ctl commands that works
[svn42.git] / rf433ctl / rf433ctl.pde
index 2191f4d..7c327d3 100644 (file)
@@ -23,7 +23,7 @@
 OneWire  onewire(ONE_WIRE_PIN);
 DallasTemperature dallas_sensors(&onewire);
 DeviceAddress onShieldTemp = { 0x10, 0xE7, 0x77, 0xD3, 0x01, 0x08, 0x00, 0x3F };
-#define TEMPC_OFFSET_ARDUINO_GENEREATED_HEAT -4.0
+#define TEMPC_OFFSET_ARDUINO_GENEREATED_HEAT 
 
 typedef struct {
   byte offset;
@@ -179,8 +179,8 @@ ISR(TIMER1_COMPA_vect)
   word_cnt++;
   if(word_cnt < FRAME_LEN)
     init_word(current_word);
-
-  frame_finished = 1;
+  else
+    frame_finished = 2;
 }
 
 //***********//
@@ -188,15 +188,25 @@ ISR(TIMER1_COMPA_vect)
 
 void send_frame(const word_t w)
 {
+  if (frame_finished == 0)
+    for(;;)
+      if (frame_finished)
+      {
+        delay(150);
+        break;
+      }
   word_cnt = 0;
   frame_finished = 0;
-  init_word(w);
-
-  for(;;)
-    if(frame_finished)
-      break;
+  init_word(w);      
+}
 
-  Serial.println("Ok");
+void check_frame_done()
+{
+  if (frame_finished==2)
+  {
+    Serial.println("Ok");
+    frame_finished=1;
+  }
 }
 
 //********************************************************************//
@@ -372,6 +382,7 @@ void loop()
   
   updateLightLevel(PHOTO_ANALOGPIN);
   calculate_led_level(BLUELED_PWM_PIN);
+  check_frame_done();
   
   if(Serial.available()) {
     char command = Serial.read();