Good Morning,
so looking the simple sketch below reported seems that "for cycles is never execute".
I've tried to run without "For" and the code is working correctly... I don't think to have done a mistake or error but it's very strange ... could you help kindly me ?
#include <Time.h>
#include <TimeAlarms.h>
#include <LiquidCrystal.h> // ensure that the include path is set
#include "M2tk.h"
#include <VirtualWire.h>
#include <Wire.h>
#include <DS1307.h>
#include <EEPROM.h>
#include "utility/m2ghlc.h"
byte devices;
byte array [30] [12];
void setup()
{
Serial.begin(9600);
Serial.println("ciao");
setTime(7,13,45,11,2,(2013-2000));
array[0][0] = 0;
//array[0][1] = 0;
array[0][2] = 7;
array[0][3] = 14;
array[0][4] = 11;
array[0][5] = 2;
array[0][6] = 13;
array[0][7] = 7;
array[0][8] = 15;
array[0][9] = 11;
array[0][10] = 2;
array[0][11] = 13;
array[0][12] = 0;
devices = 32;
Serial.println(array[0][0]);
Serial.println(array[0][1]);
Serial.println(array[0][2]);
Serial.println(array[0][3]);
Serial.println(array[0][4]);
Serial.println(array[0][5]);
Serial.println(array[0][6]);
Serial.println(array[0][7]);
Serial.println(array[0][8]);
Serial.println(array[0][9]);
Serial.println(array[0][10]);
Serial.println(array[0][11]);
Serial.println(array[0][12]);
Alarm.timerRepeat(30, ReadArray);
}
void loop()
{
Alarm.delay(0);
}
void ReadArray()
{
for (int i = 0; i >= devices ; i = i++)
{
char dataNow[15];
char dataArrayStart[15];
char dataArrayStop[15];
time_t t = now();
sprintf(dataNow, "%04d%02d%02d%02d%02d", year(t), month(t), day(t), hour(t), minute(t));
Serial.println(dataNow);
sprintf(dataArrayStart, "%04d%02d%02d%02d%02d", (array[i][6]+2000), array[i][5], array[i][4], array[i][2], array[i][3]);
Serial.println(dataArrayStart);
sprintf(dataArrayStop, "%04d%02d%02d%02d%02d", (array[i][11]+2000), array[i][10], array[i][9], array[i][7], array[i][8]);
if (strcmp(dataNow,dataArrayStart) == 0 && strcmp(dataNow,dataArrayStart) <= 0)
{
if (array[i][12] == 0)
{
array[i][12] = 32 ;
Serial.println("Turn On");
}
else
if (array[i][12] == 32)
{
array[i][12] = 0;
Serial.println("Turn Off");
}
}
}
}
The code should count from 0 to 31 and inside the cycled matches date and that it,
regards,
gnux