www.open-tager.ru http://www.open-tager.ru/forum/ |
|
LTAscetik http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1565 |
Страница 439 из 532 |
Автор: | Pingvin [ 06 апр 2015, 17:19 ] |
Заголовок сообщения: | Re: LTAscetik |
Pacifist писал(а): LTagKirov писал(а): ...Идеал ХСЛ: дип корпус в 8 ногах + пара ключей и несколько светодиодов. Эх.. забацать чтоль для пионэров какой-то "пиу-тагер" на десяти деталюшках и 8-выводном контроллере пока Аскет заброшен в дальний ящик а Армада только начинает делаться? Армада если не завершается (я склонен считать, что релиз выйдет достаточно скоро), то уж точно не начинается! Львиная доля работы уже выполнена. Датчики нужны, чтобы продолжить. Пока жду получки, бутлоадер писать начал. Надо пропарсить hex и залить во флеш. Аскет не заброшен, Аскет интегрируется в Андроид Лазертаг систему. |
Автор: | Pingvin [ 06 апр 2015, 17:20 ] |
Заголовок сообщения: | Re: LTAscetik |
maybik писал(а): Pingvin писал(а): Синие можете и сами заказать в производство. 48 штук около 2 тыс. рублей выходит. Но если только парочка нужна - поищу. готов приобрести 50 шт, но есть парочку вопросов, как с вами связаться? skype: johnvornavskoy vk: johnvornav Так звоните прямо в контору и заказывайте! 48 шт. на заготовке. Заказывайте 3.1 Там модульность, мах3232 на самой плате нет, если надо - подключается как дополнительный модуль. Тут можете пошариться http://ltascet.com/ |
Автор: | maybik [ 08 апр 2015, 00:28 ] |
Заголовок сообщения: | Re: LTAscetik |
Pingvin писал(а): В общем... В функции Код: void hit_processing(trx_packet hit_packet) Есть процедура обработки состояния, когда игрок вырублен. Она такая страшная, потому что тач Мемори тут ещё учитывается, можно выкинуть, станет проще. По уму её надо вытащить в отдельную функцию и использовать и при обработке команды 0x00 Тут выход из состояния по нажатию центральной кнопки джойстика, либо колючем Тач Мемори, либо командой с пульта 0x05. проверьте пожалуйста, пользуясь логикой и знаниями далекого первого курса универа, собрал из вашего кода следующее: Код: case 0x00://"выключить" игрока { life = 0; life_in_percent=0; WOUND_LED_ON; display_life(life);//отобразим уровень жизни на диодах display_life_update();//отобразим уровень жизни на ЖКИ volatile uint8_t keypress_cntr; //счетчик циклов, в течении которых курок был нажат keypress_cntr = 0; while (eeprom_is_open);//дождемся, пока eerom закроется playgameoversound(); if { lcd_bl_off(); display_status(); rx_event = rx_event = NOT_EVENT; ir_message.control_byte = 0; while(!(((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05))||(joystick_event == key_central_pressing)))//пока не получим команду "старт" {//[while] rx_event = NOT_EVENT; while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event == no_pressing))//пока нет никаких команд пульта {//[while] WOUND_LED_INVERT; USART_PutChar('1'); timer2 = 0; while (timer2 < 1000); WOUND_LED_INVERT; timer2 = 0; while (timer2 < 1000); }//[while] if(joystick_event!=key_central_pressing)joystick_event = no_key_pressing; if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//пришла команда пульта, выдергиваем значения команды из буфера ИК приемника else //[else] { if (rxCount>0) finde_message_in_bt_buffer(); } break;} собираюсь вставить в файл ltag_ascetic.c версии 3.1 но плату развел под 3.0, что нужно подправить еще? просто уже платы заказал Вложение: 1.jpg [ 125.95 KiB | Просмотров: 6366 ] Вложение: 2.jpg [ 143.22 KiB | Просмотров: 6366 ] |
Автор: | Pingvin [ 08 апр 2015, 06:16 ] |
Заголовок сообщения: | Re: LTAscetik |
Да платы то можно было заказать 3.1, я же не однократно писал! Там за платку около 40 р. выходит. Различие в том, что в 3.1 не используется JTAG (по прямому назначению) - там диоды "здоровья" подключены. Так что надо переопределить ножки светодиодов в хедере (если прошивку от 3.1 использовать в плате 3.0). А по коду - я так не могу! Это надо садиться писать, тестить. Но даже сходу видно - не правильно. Функцию надо оформить, например Код: game_over(){ } И туда всю эту красоту запихать. А вызов будет такой case 0x00: { game_over(); } break; Посоветовались бы, прежде чем печатки заказывать - улучшение можно было ввести - аппаратный SPI (добавить один вывод на разъём), драйвер уже написан, просто подменяем файл shift_registr_driver.h |
Автор: | maybik [ 08 апр 2015, 07:43 ] |
Заголовок сообщения: | Re: LTAscetik |
To pingvin Ну я бы с радостью посоветовался, просто мои сообщения долго обрабатывались модератором. А функцию нужно же где-то обозначить? Я так понял в файл ltag_ascetik.h |
Автор: | Pingvin [ 08 апр 2015, 11:16 ] |
Заголовок сообщения: | Re: LTAscetik |
maybik писал(а): To pingvin Ну я бы с радостью посоветовался, просто мои сообщения долго обрабатывались модератором. А функцию нужно же где-то обозначить? Я так понял в файл ltag_ascetik.h Да - декларируем в ltag_ascetiс.h реализацию пишем в ltag_ascetiс.с Займусь, время будет... |
Автор: | maybik [ 08 апр 2015, 17:16 ] |
Заголовок сообщения: | Re: LTAscetik |
Pingvin писал(а): maybik писал(а): To pingvin Ну я бы с радостью посоветовался, просто мои сообщения долго обрабатывались модератором. А функцию нужно же где-то обозначить? Я так понял в файл ltag_ascetik.h Да - декларируем в ltag_ascetiс.h реализацию пишем в ltag_ascetiс.с Займусь, время будет... вот что получилось, надеюсь верно в ltag_ascetic.c добавил это: Код: /**************************************** * admin kill *****************************************/ game_over(void){ life = 0; life_in_percent=0; WOUND_LED_ON; display_life(life);//отобразим уровень жизни на диодах display_life_update();//отобразим уровень жизни на ЖКИ volatile uint8_t keypress_cntr; //счетчик циклов, в течении которых курок был нажат keypress_cntr = 0; while (eeprom_is_open);//дождемся, пока eerom закроется playgameoversound(); if { lcd_bl_off(); display_status(); rx_event = rx_event = NOT_EVENT; ir_message.control_byte = 0; while(!(((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05))||(joystick_event == key_central_pressing)))//пока не получим команду "старт" {//[while] rx_event = NOT_EVENT; while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event == no_pressing))//пока нет никаких команд пульта {//[while] WOUND_LED_INVERT; USART_PutChar('1'); timer2 = 0; while (timer2 < 1000); WOUND_LED_INVERT; timer2 = 0; while (timer2 < 1000); }//[while] if(joystick_event!=key_central_pressing)joystick_event = no_key_pressing; if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//пришла команда пульта, выдергиваем значения команды из буфера ИК приемника else //[else] { if (rxCount>0) finde_message_in_bt_buffer(); } в ltag_ascetic.h добавил эту строчку: Код: void game_over(void);//admin kill Цитата: аппаратный SPI это для программирования камня? я собираюсь шить по SPI поэтому JTAG как и многое другое не разводил на печатке
|
Автор: | Pingvin [ 09 апр 2015, 06:52 ] |
Заголовок сообщения: | Re: LTAscetik |
Не верно! Я для примера кинул кусок кода, Вы восприняли это как истину в последней инстанции. Надо проанализировать код. |
Автор: | maybik [ 09 апр 2015, 08:47 ] |
Заголовок сообщения: | Re: LTAscetik |
Pingvin писал(а): Не верно! Я для примера кинул кусок кода, Вы восприняли это как истину в последней инстанции. Надо проанализировать код. Я вас понял буду думать |
Автор: | Pingvin [ 09 апр 2015, 10:13 ] |
Заголовок сообщения: | Re: LTAscetik |
maybik писал(а): Pingvin писал(а): Не верно! Я для примера кинул кусок кода, Вы восприняли это как истину в последней инстанции. Надо проанализировать код. Я вас понял буду думать Я помогу, с бутлоадером для армады разберусь только (доведу до ума). Делов то там - на пол часа. |
Страница 439 из 532 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |