www.open-tager.ru http://www.open-tager.ru/forum/ |
|
прошивки на систему LTagKirov http://www.open-tager.ru/forum/viewtopic.php?f=5&t=417 |
Страница 10 из 36 |
Автор: | Nestr [ 10 дек 2012, 23:26 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Вот что пишет новый проект |
Автор: | tommy [ 11 дек 2012, 09:11 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Nestr писал(а): Установил с офф сайта 4,18 билд 684. все прекрасно дебажится. если дебажится, то и прошивка значит нормально собирается. плюс build - это клавиша F7 (без альт), вроде. вечером на виртуалку с нуля поставлю всё, попробуем повторить то что происходит.
но нажимая на кнопку "компилировать" (Alt+F7) вылазит такое сообщение в поле Билд |
Автор: | Nestr [ 11 дек 2012, 13:09 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
чтоб собрать проект в файл *hex нужно нажать F7 ? |
Автор: | tommy [ 11 дек 2012, 20:01 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Alt+F7 - компиляция текущего .c файла F7 - сборка проекта (компиляция, линковка). открытие проекта в 5-й студии, аналогично 6-й: File->Import->AVR Studio4 Project, проект конвертируется и собирается без ошибок (так же клавишей F7). |
Автор: | Nestr [ 11 дек 2012, 20:35 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
tommy писал(а): Alt+F7 - компиляция текущего .c файла F7 - сборка проекта (компиляция, линковка). открытие проекта в 5-й студии, аналогично 6-й: File->Import->AVR Studio4 Project, проект конвертируется и собирается без ошибок (так же клавишей F7). Во! все заработало. Как выставить чтоб очередь одиночные переключались кнопкой. Комментировал Цитата: #define SQMODE_SWITCH очередью все время стреляет |
Автор: | tommy [ 11 дек 2012, 20:57 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
надо пин ещё раскомментить на кнопку переключения - PinSQ |
Автор: | tommy [ 11 дек 2012, 20:58 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
SQMODE_SWITCH - задаёт как ведёт себя переключатель огня (как кнопка или как переключатель) |
Автор: | tommy [ 13 дек 2012, 09:55 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
надо, да, довести прошивку до стабильного состояния, чтоб потом уже не трогать. если кто подправил чего - делитесь. ну или какие предложения по коду есть (может стиль кривой или "архитектура" и править просто не удобно). |
Автор: | LTagKirov [ 13 мар 2013, 21:52 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Есть новая версия, но схема сильно изменилась, практически это новая версия оборудования несовместимая по железу с первым вариантом. Соответственно и прошивка не подойдёт. К сожалению пока не могу выложить код полностью. Есть ли желание у кого-нибудь паять схему для закрытых исходников ? Архитектура программы довольно простая - приведённый кусок кода полностью описывает поведение прошивки для выстрела. Код: #include "fire.h"
void setup_fire(void) { StateFire = 0; ots_cnt = 0; make_bullet(); // подготовить пулю по cfg параметрам } // Логическое поведения оборудования для выстрелов 100Гц void LogicFire(void) { switch (StateFire) { case WantPula: // флаг BtFire кнопка Огонь отфильтованная от дребезга if (( btFire > 0) || (btMIC > 0 )) { StateFire = NeedPula; // запрос на выстрел обработан } break; case NeedPula: // Проверить наличие патронов в обойме и состояние жизни игрока if ((0 == ammo_clip_in_game)||(1 == flOutGame)) { // Вне игры или нет патронов StateFire = OneFire; // отпусти курок :) need_sound(SND_OSECHKA); } else { // есть патроны и в игре StateFire = OutPula; // между этими состояниями можно вставить // паузу накачки лазера, определить тип выстрела // (дольше держим сильнее выстрел и тд) // или ещё какое нибудь расширение игры }; break; case OutPula: // вычесть патрон из магазина ammo_clip_in_game--; // запуск пули только здесь // и сюда можем попасть только с 0 == flFire // биты пули выгружаются // из remote_tx_data с мл разрядов remote_tx_data = bullet_data; // инициировать ИК выстрел // передача в прерывании remote_tx_state = TX_NEED; flFire = 1; // need_sound(SND_FIRE); // запускаем звук // Звук и пуля могут мешать друг другу flFire = 1; // на время выстрела работу со звуком останавливать // неменять состояние подключения вЫходов таймеров StateFire = EndPula; break; case EndPula: // Пуля должна улететь полностью, // чтобы начать следующую ИК посылку if (1 == flFire) { StateFire = EndPula; } else { // Пуля улетела, проверяем нет ли поражений need_sound(SND_FIRE); // запускаем звук пули if (1 == flEnemyFire) { // Да Получена Чужая пуля // отработать паузу невозможности стрельбы shok_time_cnt = 0; StateFire = EnemyFireShok; } else { // Пуля улетела, и нет поражений // отрабатываем темп стрельбы temp_fire_cnt = 0; StateFire = TempFire; } } break; case TempFire: temp_fire_cnt++; if (temp_fire_cnt > temp_fire) { // пауза кончилась, определяем режим стрельбы // автомат, полуавтомат, кнопка внешняя if ( rifle == RIFLE_AVTO){ StateFire = SequFire; } else { } } break; case EnemyFireShok: shok_time_cnt++; if (shok_time_cnt > shok_time) { // пауза кончилась flEnemyFire = 0; // сбросить флаг // Нужно обязательно отпустить курок, после шока StateFire = OneFire; } break; case OneFire: if ( btFire > 0 ) { StateFire = OneFire; // Нужно обязательно отпустить курок } else { StateFire = WantPula; // Ожидание btMIC = 0; // сбрасываем флаг микрофона }; ots_cnt = 0; // сбросить счётчик отсечки break; case SequFire: if ( btFire > 0 ) { if (ots_cnt > otsechka) { // отсечка кончилась StateFire = OneFire; } else { StateFire = NeedPula; ots_cnt ++; #if DEBUG_TX == 1 putchar_(' '); // в начало строки putchar_('o');putchar_(ots_cnt);putchar_(' '); #endif }; } else { StateFire = WantPula; // отпустили курок ots_cnt = 0; // сбросить счётчик отсечки btMIC = 0; // сбрасываем флаг микрофона }; break; }; // case end } // конец автомата выстрела |
Автор: | LTagKirov [ 13 мар 2013, 22:21 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
kicuene писал(а): А почему для закрытых исходников? Писал на заказ, потому есть ограничение на распространение. Кусков кода для иллюстрации "надёргать" могу, но целиком проект открывать пока никак невозможно. Получилось что-то вроде библиотеки (a'la Arduino) заточеной для лазертаг прошивок: например есть поддержка нескольких зон поражения, с любых свободных выводов (без прерываний), звуковая активация(петарды), контроль питания и тд. |
Страница 10 из 36 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |