Сначала нужно определиться - что мы будем записывать, какие события?
Я предлагаю просто записывать пакеты, которые нанесли урон.
Для каждого пакета хватит двух байт.
Итого - 200 байт должно хватить на одну игру.
Удобней всего хранить статистику во внутренней eeprom контроллера.
Если места хватит (должно хватить).
Так же есть вариант хранить во внешней eeprom (микросхеме), но тогда нужно, чтобы место осталось после записи звуков.
Ну и сложнее будет реализовать, хотя можно тоже.
Переменные, хранимые во внутренней eeprom контроллера определяются так
Код:
volatile EEMEM tteam_color eeprom_team_id;
//volatile uint8_t shift_register_buffer; //в этой переменной будем хранить данные для сдвигового регистра перед отправкой
volatile EEMEM uint8_t eeprom_player_id;
volatile EEMEM tgun_damage eeprom_damage;
volatile EEMEM uint8_t eeprom_bullets_in_clip; // количество патронов в обойме
volatile EEMEM uint8_t eeprom_clips; // количество обойм при инициализации
volatile EEMEM uint8_t eeprom_reload_duration; // длительность перезарядки (в секундах)
volatile EEMEM uint16_t eeprom_batt_full_voltage; // напряжение полностью заряженной батареи (значение АЦП)
volatile EEMEM uint16_t eeprom_batt_low_voltage; // напряжение полностью разряженной батареи (значение АЦП)
volatile EEMEM uint8_t eeprom_curr_ir_pin; //определяет мощность ИК излучения
volatile EEMEM ttm_serial_num eeprom_tm_serial_num;
Если память не подводит, то размер внутренней eeprom 256 байт.
Нужно подсчитать - сколько уже использована, а сколько осталось.
По моим прикидкам - у нас ещё более 200 байт свободно в eeprom (внутренней).
Потом придумаем команду, которая будет выводить статистику по UART (блютус).
И реализуем её.