В ожидании контроллеров сел за прошивку для пульта (и прочей лабуды - аптечек, аномалий и т.д.).
Изменил алгоритм передачи.
Теперь в буфере передатчика хранится не количество тиков таймера, как раньше, а непосредственно передаваемые байты.
Оперативную память надо экономить!
Упростились и функции формирования пакета выстрела - установка ID игрока и команды и урона - нет больше ужасных switch-ей, за которые меня справедливо критиковали.
Код:
/**************************************************************************************
* Установка идентификатора игрока
* в качестве аргумента функции указывается идентификационный номер игрока (от 1 до 127)
***************************************************************************************/
void set_player_id(uint8_t ID){
tx_buffer[0]= ID;
tx_buffer[0] &=~(1<<7);//седьмой бит в выстреле всегда равен "0"
}
/**************************************************************************************
* Установка идентификатора (цвета) команды
* в качестве аргумента функции указывается идентификационный номер (цвет) команды (от 0 до 3)
***************************************************************************************/
void set_team_color(tteam_color color){
tx_buffer[1] &=~((1<<7)|(1<<6));//обнуляем два старших бита
tx_buffer[1] |=(color <<6);//устанавливаем 6 и 7 биты в соответствии с цветом команды
}
/**************************************************************************************
* Установка установка мощьности нашего оружия (наносимый урон)
* в качестве аргумента функции указывается наносимый урон
***************************************************************************************/
void set_gun_damage(tgun_damage damage){
tx_buffer[1] &=~((1<<5)|(1<<4)|(1<<3)|(1<<2));//обнуляем биты урона
tx_buffer[1] |=(damage << 2);
}
Сейчас это прошивка для 3.1 (синей платы) для ЖКИ 8x2 и без джойстика.
Не пульта (не дошел ещё)!
Просто таг с новым алгоритмом передачи пакета.
Ща протестирую ещё разок и выложу.
На данный момент особой нужды использовать её в тагах нет.
Но если реализуем клонирование, то на базе нового алгоритма.
Да и добавлять команды пульта теперь одно удовольствие!