У меня есть что-то вроде следующего кода, который работает некоторое время, и он работает.
//define a timer
struct lightTimer {
unsigned long time; //time in seconds since midnight so range is 0-86400
byte percentage; // in percentage so range is 0-100
};
//define a list of timers
struct lightTable {
lightTimer timer[50];
int otherVar;
};
//and make 5 instances
struct lightTable channel[5]; //all channels are now memory allocated
@ zx485: РЕДАКТИРОВАТЬ: отредактировал / очистил код. Извините за сырую свалку.
Пояснение:
Определить lightTimer. В основном структура, которая содержит 2 переменные.
struct lightTimer {
Определить таблицу освещения. Первый элемент - это lightTimer.
struct lightTable {
Создание фактического (именованного) экземпляра:
struct lightTable channel[5];
Теперь у нас есть 5 каналов с 50 таймерами.
Доступ как:
channel[5].timer[10].time = 86400;
channel[5].timer[10].percentage = 50;
channel[2].otherVar = 50000;