понедельник, 20 мая 2013 г.

Термометр с памятью. Часть 2. Структура данных в EEPROM.

Для сохранения данных, в моем распоряжении не так уже много места - 256(512) Кбит. Но хотелось бы сохранить данные о температуре как можно за больший период. В связи с этим придется сделать так, что при изменении количества датчиков, либо при изменении частоты измерений, вся память будет стираться и все данный записываться по новой.

Отведем первые 12 байт под настройки:
  • Количество каналов (0 - 3) - 2 бита
  • Частота измерений (каждые 5, 10, 20, 30 мин, 1, 2, 4, 6 часов) - 4 бита
  • Дата начала измерений (в формате BCD как в часах) - 5 байт
  • Дата окончания измерений (в формате BCD как в часах) - 5 байт
Все остальное место будут занимать данные о температуре и о батарее. Структура будет зависеть от количества каналов:
  • 1 канал - 1 байт напряжения батареи + 1 байт первого канала
  • 2 канала -  1 байт напряжения батареи + 1 байт первого канала + 1 байт второго канала
  • 3 канала -  1 байт напряжения батареи + 1 байт первого канала + 1 байт второго канала + 1 байт третьего канала
  • 4 канала -  1 байт напряжения батареи + 1 байт первого канала + 1 байт второго канала + 1 байт третьего канала + 1 байт четвертого канала
Так, при частоте измерений в 5 минут, и использовании 4-х каналов, можно будет сохранить данные о температуре примерно за 22 дня (при использовании 2 микросхем памяти - за 45 дней)