www.open-tager.ru http://www.open-tager.ru/forum/ |
|
прошивки на систему LTagKirov http://www.open-tager.ru/forum/viewtopic.php?f=5&t=417 |
Страница 18 из 36 |
Автор: | LTagKirov [ 16 июл 2014, 23:57 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
KorSar писал(а): Вот с последними правками Вложения: ltk_kor16_01_14.rar [257.96 KiB] Побыстрому посмотрел код: очень очень очень шикарный вариант - всем рекомендую !!! Обрабатывает 3 команды майлс, со звуком выстрела (для некоммерческой игры большего и не потребуется) вмещается в 5кб памяти Приятный вариант условной компиляции. И самое главное понятная и логичная структура прошивки, короткие обработчики прерываний, хорошая изоляция логики от аппаратного уровня и тд. Кто автор ? ЗЫ. Этот вариант желательно сохранить с минимальным рабочим функционалом (чтобы на атмеге8 работал), максимум реализовать условную компиляцию для схем Ltk v2(обойдётся условной компиляцией) и Asceta(потребуется переменить ножки в схеме аскета OC2 + OC1A/B) |
Автор: | alex97 [ 17 июл 2014, 23:05 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Спасибо за заботу) То есть прошивку ltk_kor16_01_14.rar можно заливать в МК с этой схемой? |
Автор: | tommy [ 18 июл 2014, 08:02 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
alex97, можно заливать, но перед компиляцией прошивки надо прочитать файлик config.h (на всякий случай, вдруг ноги кнопок и светодиодов отличаются - например, если не хочется ставить светодиод пустой обоймы, переключатель режима стрельбы или ещё чего, то это можно закоментировать в конфиге и оно работать не будет) LTagKirov писал(а): ЗЫ. Этот вариант желательно сохранить с минимальным рабочим функционалом (чтобы на атмеге8 работал), максимум реализовать условную компиляцию для схем Ltk v2(обойдётся условной компиляцией) и Asceta(потребуется переменить ножки в схеме аскета OC2 + OC1A/B) Спс за лестный отзыв, только это прошивка так и не дописана до конца. По сути выложенный файл - это прошлогодняя первоапрельская прошивка + уже дописанная Korsar'ом индикация количества жизней светодиодом пустой обоймы. Как минимум надо убрать работу с железом из игровой логики (переделав заплатку про звук пролетевшей мимо пули), убрать из звуков повязку (перенеся её в игровую логику) и переделать инициализацию периферии (сейчас если надо, например, ещё один светодиод, то его надо добавить и в config и в hardware).Вообщем, делать с прошивкой можно всё что угодно, главное не забыть потом поделиться со всеми |
Автор: | KorSar [ 18 июл 2014, 12:25 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
tommy писал(а): KorSar, а может выложить её в «мастерскую»? плюс удалить там предыдущие версии (некоторые с поломанным майлс приёмом аж) Я сам не смогу это сделать. Нужно просить держателей сайта. Собственно этот пост и есть просьба. |
Автор: | Ansat [ 18 июл 2014, 13:43 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Добрый день! правильно ли я понимаю, что исходники никогда не публиковались (кроме ltk_miles_13_12_11)? Спасибо. |
Автор: | LTagKirov [ 18 июл 2014, 14:13 ] | |||
Заголовок сообщения: | Re: прошивки на систему LTagKirov | |||
tommy писал(а): Спс за отзыв, только это прошивка так и не дописана до конца. Вообщем, делать с прошивкой можно всё что угодно, главное не забыть потом поделиться со всеми Риторический вопрос: что она не умеет жизненно необходимого для игры ? Сейчас сравнил "народную" прошивку со своей новой версией: 1. Народная прошивка конфигурится перекомпиляцией - и этого достаточно для самодельщика. 2. Только один wav звук выстрела, остальные сигналы тональные - а нужно ли больше ? 3. Нет проверки заряда АКБ и встроенного зарядного устройства - это не прокат можно и позаботится о своих батареях заранее. 4. Одна зона поражения - у комерсантов и прокатчиков тоже не сильно распростронена многозоновость. 5. Команды майлс оживить, прибавить патроны, здоровье вроде маловато, однако честно скажем нет у нас таких частых сценарных игр где нужно больше. 6. Нет подствольника - макеты с ним я пока невидел в живую Итого "народная" прошивка достаточна, для большинства игр, и даже прокат для детей/манагеров на ней можно организовать ! tommy писал(а): можно заливать, но перед компиляцией прошивки надо прочитать файлик config.h (на всякий случай, вдруг ноги кнопок и светодиодов отличаются Обновил схему с пояснением различий между первой и второй версиями. В архиве проект для диптрейс, готовая рыба для разводки печатных плат.
|
Автор: | LTagKirov [ 18 июл 2014, 14:24 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Ansat писал(а): LTagKirov писал(а): Вот новая схема, процессор нужен Ат168, но если в "кроватку" ставить то и Ат8 подойдёт для начала правильно ли я понимаю, что исходники никогда не публиковались (кроме ltk_miles_13_12_11)? Для второй версии LTK V2, исходники были выложены частями (основные узлы), полного проекта для сборки ещё не распространял. Если вам нужны исходники самое простое присоединится к "народной" прошивке от Tommy. Если собрать схему LTK V2 (только что выложил), и поправить "народную" прошивку(переставить таймеры OC2 и ОС1А), для запуска на новой схеме без переподключения динамика и ИК диода, то можно будет менять прошивки в любой момент. У вас будет макет в котором собранна электроника совместимая с двумя варииантами прошивок от разных издателей. И в таком варианте эта вещь никогда не станет бесполезной, какая то ветка всё равно выживет. ЗЫ. Объяснение почему полезно переменить в первой версии таймеры между собой и сделать OC2(звук) и ОС1А(выстрел) http://open-tager.ru/forum/viewtopic.ph ... 0%B8%D1%8F |
Автор: | tommy [ 18 июл 2014, 21:57 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Ansat писал(а): правильно ли я понимаю, что исходники никогда не публиковались (кроме ltk_miles_13_12_11)? кстати, публиковались ведь. для 1-й версии точно где-то были, только чёт не ищется и с сайта не скачивается. ltk_milesxxx - это уже вольное переложение оригинала LTagKirov, спс за схему в диптрейсе. так-то немало отличий v2 от v1 - ноги, частота. кстати, раз уж такая пьянка пошла, то последний вариант прошивки задумывался как какой-то промежуточный описательный язык игровой логики транслируемый либо компилируемый lex'ом/yacc'ом в подходящий вариант для различных железок (v1/v2/asket/pic/stm32). Типа хочешь гранату - берёшь универсальный файлик, прогоняешь его прогой которая с железкой шла и дальше уже по обстоятельствам либо компилируешь полученную прошивку, либо заливаешь байт-код в мк, ну или как оно там в разных железках. Но чёт в реальности всё одно не так и много разных железок и у всех лишь ружья, да повязки, ну и писать на промежуточном варианте код спагетти логики чёт не менее муторно чем просто под каждый вариант написать логику ружья, и как главная отмазка - всё одно больше чем для одной железки код писать не приходится а вот если люди с разными железяками соберутся, то им есть смысл логику в каком-то промежуточном варианте писать (ради этого предложения весь абзац писал). например, прошлогодняя прошивка как-то так выглядела сначала (HW/SW - это требования на железку/парсер): Код: HW_VERSION 1 всякие эти editables, name и values нужны для конфигурирования всего этого хозяйства утилитами (для прошивок где эти утилиты (bluetooth/radio/uart/etc) есть, для остальных - конфиг файлики и т.д.), вообщем, где-то это всё уже обсуждалось и не раз. Но вот если кто возьмется забацать что-нить такое (или не такое, но универсальное) - готов помогать, могу парсер с какого-нить языка под ltk v1/v2 сделать (в прошлый раз дальше описания в bison'е дело но ушло - всё одно под одну платформу поиск с заменой удобней) SW_VERSION 1 ***hardware*** led led_fire led led_hit requied led led_empty button btn_restart name:"New game button" button btn_mode name:"Burst mode button" button btn_fire name:"Firebutton" button switch_mode name:"Burst mode switch" button btn_reload name:"Reload button" ***variables*** int id default:0 editable range:{0..127} name:"id" int team default:0 editable range:{0..3} name:"team" values:{"red", "green", "blue", "yellow"} int health default:1 editable range:{0..255} name:"health" int rounds default:30 editable range:{0..INF} int mags default:3 editable range:{0..INF} name:"mags" bool fire_mode default:false editable values:{"full auto", "semi"} int burst_size default:false editable range:{0..INF} bool autoreload default:false editable values:{"manual", "auto"} bool alive_at_startup default:false editable name:"power on status" values:{"dead", "alive by default"} sound sound_new_game default:"new_game_sound" editable sound sound_reload_begin default:"sound_reload_begin" editable sound sound_reload_end default:"sound_reload_end" editable sound sound_out_of_ammo default:"sound_out_of_ammo" editable sound sound_fire default:"fire" editable sound sound_beep default:"sound_beep" editable sound sound_beep_beep default:"sound_beep_beep" editable sound sound_power_on default:"sound_power_on" editable timer timer_fire timer timer_shock timer timer_vulnerable timer timer_flash bool ready_to_fire ***code*** function reload_done() { //перезарядка завершена, устанавливаем количество патронов, сбрасываем значение отсекателя burst = get_default(burst) rounds = get_default(rounds) //играем звук, выключаем лампочку и переводим автомат в состояние готовности play_sound(sound_reload_done) ready_to_fire = true disable_led(led_empty) } function reload_weapon() { if (mags>0) { mags = mags-1 ready_to_fire = false start_timer(timer_fire, reload_time, reload_done) play_sound(sound_reload_begin) } else { play_sound(sound_out_of_ammo) } } function flash_done() { disable_fire_led() } function firing_done() { ready_to_fire = true } ... и т.д. по тексту не гербалайф, пасаны - надо лишь всем толпой с описательной частью определиться и усё (ну или взять язык уже существующий, какой-нить простой, добавить ограничений, да ЛТ специфики), а дальше каждый под разные железки свои парсеры сделает. |
Автор: | LTagKirov [ 18 июл 2014, 22:24 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
tommy писал(а): кстати, раз уж такая пьянка пошла, то последний вариант прошивки задумывался как какой-то промежуточный описательный язык игровой логики транслируемый либо компилируемый lex'ом/yacc'ом в подходящий вариант для различных железок (v1/v2/asket/pic/stm32). .... а вот если люди с разными железяками соберутся, то им есть смысл логику в каком-то промежуточном варианте писать (ради этого предложения весь абзац писал). Волшебно - это получается сценарии для игр и поведение/протоколы маркеров смогут описывать люди которые нифига в програмировании STM PIC и AVR не понимают Придумщикам электроники надо так сказать только написать "драйвер" для своих плат, а вся скриптовая логика будет готовая tommy писал(а): не гербалайф, пасаны - надо лишь всем толпой с описательной частью определиться и усё, а дальше каждый под разные железки свои парсеры сделает. Может тогда не усложнять с языками, изобразить дефайнами обвёртку над С и описать АПИ для драйвера. |
Автор: | tommy [ 18 июл 2014, 22:47 ] |
Заголовок сообщения: | Re: прошивки на систему LTagKirov |
Pacifist, Не, как раз ничего не работает мало того, что у всех логика даж ружей различается (и на разных системах по разному ружье себя ведёт), дык и взять-то доп. прошивки с базами, аптечками, гранатами, растяжками, админ-пультами тож не понятно где. Если какой-то функционал был не нужен автору железки - его и в прошивке не будет. Pingvin, LTagKirov, во! давайте запилим! В общем варианте дифайнами не обернуть никак. Железки-то у всех разные, у кого получится свою обёртку сделать - тому повезло, парсер простой будет, а у кого не получится - тот пусть хоть кодогенерацию пишет. Можно ведь взять си, упростить (типа нельзя локальные переменные, структуры, ссылки и т.д.) и добавить чего не хватает (типа описания полей для конфигураторов, необходимого железа и всякого). Можно даж парсер в байт код простой и тулзу для тестов прошивки для pc сделать, чтоб в мк не заливать, а на ходу оттестить всякие входящие параметры, да нажатия кнопок (чёт понесло). Событий-то не шибко много ведь - в простейшем случае это игровой цикл, пришла ИК команда, пришёл ИК выстрел и всё (ну может ещё включение железки). События на кнопки вряд-ли нужны. Нужны ф-ции проверки состояния кнопок, включения-выключения светодиодов, проиграть-остановить звук, послать ИК команду и ИК выстрел и, вроде, по железу всё. Для нежелезных - прочитать знание по умолчанию для какого-нить поля, да запустить таймер с callback'ом. Таймеры причём спорная идея - я на них просто логику ружья забацал (на предыдущей странице прошивка, ежели чего), удобно вышло и от железа далеко:) если какие другие идеи есть как время считать в логике - давайте обсудим, да. |
Страница 18 из 36 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |