www.open-tager.ru

открытый лазертаг форум
Текущее время: 27 апр 2024, 01:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 532  След.
Автор Сообщение
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 20 июн 2012, 17:20 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
furhunter писал(а):
Присмотрелся к диоду вспышки. Он светит очень слабо, но достаточно долго. С полсекунды непрерывного свечения. А то и секунду.Осциллограф показывает 1,56V с подключенным светодиодом, 3,36V c отключенным.

Все верно!
Именно так себя и ведёт диод вспышки!
Пробовал несколькими if-ами - помогает.
Но это ковыряться надо, какой из if-ов глючит.
Так что выбор стоит - "вылизывать" то что есть, или идти дальше! :)
Надеюсь на помощь сообщества в этом вопросе - дела пойдут быстрее! ;) :)

Я уже предложил решение - включать в начале передачи ИК-пакета и выключать при окончании передачи.
Если не осилите (почему то уверен - справитесь! ;) :) ) - поправлю сам, время будет...

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 20 июн 2012, 17:29 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
furhunter писал(а):
Это мне уже нравится :) Начинаю разбираться с программой, хочется осилить Атмегу да и понять алгоритм лазертага. Ибо есть желание сосредоточиться на этом направлении :) А пока буду доводить до рабочего состояния то что есть, да займусь макетами. Пока пистолеты "джентельмены, к барьеру" :D

Да уж - занятная штука эти контроллеры, затягивает. :)
Сам с Атмегой познакомился с год назад - тут же, на форуме.
Спасибо парням за это! Направили на "путь истинный"! :)
Рассматривайте проект как некий "быстрый старт", от которого можно отталкнуться.
Надеюсь, он будет Вам полезен.
Но и, в свою очередь, надеюсь, Вы так же будете готовы поделиться своими наработками? ;)

По поводу программы - спрашивайте, если что не понятно!
Как коментарии отображаются? Нормально?
Проблема в том, что git не "переваривает" виндовую кодировку, и вместо символов кириллицы в коментах видны какие то непонятные символы. :(

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 20 июн 2012, 19:19 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
У нас ещё в "загашнике" есть драйвер для внешней eeprom - проверено, работает! :)
Поставим одну на 64 кБайт (512 кБит) - это ещё + 8 секунд звука!
И статистику туда можно скидывать.
Ну и очень хочу с SD-картами поработать, но их питать от 3,3 Вольт надо.
Холдеры уже купил! :)
Тогда звука будет - море! Нет ... океан!!! :lol:
А уж RS-232 или USB - это само собой, по любому!

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 июн 2012, 04:31 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 00:22
Сообщений: 1569
Откуда: Україна
Коллеги, так быть не должно. Не должен компилятор принуждать нас использовать те или иные лексикомы...
Представьте себе сколько ошибок может накопиться в простых If() по ходу программы... задолбемся их ловить

_________________
Нет предела совершенству, но ресурсы заканчиваются быстро.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 июн 2012, 09:40 
Не в сети
Старожил
Аватар пользователя

Зарегистрирован: 31 май 2012, 23:29
Сообщений: 507
Откуда: Украина, Энергодар
Странно со светодиодом. Буду разбираться, заодно и подучусь. Если тело программы модульное и код светодиода ни на что не влияет больше, то оставляйте мне. Поищу, посмотрю, подумаю.

Разумеется, у меня есть размышления на счет нового в лазертаге. Все что сможет порадовать ребят, без проблем, буду выкладывать. Философия лазертага только рождается :) Из ближайших целей - расширение функций головной повязки, экран от мобилки, два (пока) оружия на один модуль с ограничением по боезапасу каждого отдельно, далее - радиомодули, далее всепротокольность. В перспективе - штудирую принципы определения координат удаленных объектов. Если удастся увидеть на электронной карте всех игроков - игра выйдет на совершенно новый уровень. Все хотелки и все фантазии можно будет реализовать, хоть тебе мародерство, хоть облако радиации, хоть зомби и пси воздействие. Пока буду обкатывать на Атмеге. Хороший процессор и популярный.

Pacifist верно говорит. От стандартов отходить не следует и изначально нужно исключить любые возможности возникновения независимых от человека ошибок в программировании. Допушенные человеком найдутся. Пропущенные машиной заберут 90% времени от всего программирования.

_________________
Точно попавшая в цель стрела - есть результат тысячи промахов.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 июн 2012, 19:25 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Копать надо тут:
Код:
/**************************************************************************************
* Обработчик внещних прерываний timer1A
***************************************************************************************/

ISR(TIMER1_COMPA_vect){
TIMSK &= ~_BV(OCIE1A);  //запрещаем прерывания timer1, чтобы не было рекурсии
sei();

if ((bullets >0)&&(!play_hit_snd))//если патроны не кончились
{
   if (last_simple == 0)
   {
      fire_led_status=ON; //включаем вспышку
   
   }
   else;
   if (last_simple < sizeof(pSnd))//3913
         {
            if (last_simple==(sizeof(pSnd)/100)*CUT_OFF_SOUNT)
            {
               if (fire_mode()==queues)
               {
                  if ((get_keyboard_status()==key_pressed)&&(life>0)) //курок нажат, то отсекаем звук
                  {
                     bullets--;//уменьшаем на 1 количество патронов
                     send_ir_package();   //Производим "выстрел"
                     last_simple=0;      //воспроизводим звук сначала
                     fire_led_status=FQR_4HZ;
                  }
                  else    fire_led_status=ON;                  
               }
               else;
            }
            else;

            OCR0 = pgm_read_byte(&(pSnd[last_simple++]));
         }
   if (last_simple >= sizeof(pSnd)&&(last_simple)!=0xFFFF)//3913
         {
         
            OCR0 = 128; //Скважность = 0,5
            fire_led_status=OFF;
            
         };


}


if (bullets <= 0) //патроны кончились
   {
      BULLETS_OUT_LED_ON; // включаем светодиод "Патроны кончились"
      if (last_simple < sizeof(pSnd)) {OCR0 = pgm_read_byte(&(pSnd[last_simple++]));}//дадим выстрелу прозвучать до конца
      else fire_led_status = OFF;
   };






static volatile uint16_t tmp_cntr=0;

   if ((tmp_cntr - (tmp_cntr/100)*100)==0)
   {
      switch(keyboard_event)
         {
           case no_key_pressing:
              {
               keyboard_event=test_keyboard();
               break;
            }
           default:;         
         }   

   }




if (++tmp_cntr > 1000) //пора обновить индикацию
   {




      tmp_cntr = 0;
      static volatile uint8_t bit_mask = 0b00000001;

      if ((life_leds_status[0]&bit_mask)==0)
         {
            LIFE_LED1_OFF;
         }
      else
         {
            LIFE_LED1_ON;
         };
      if ((life_leds_status[1]&bit_mask)==0)
         {
            LIFE_LED2_OFF;
         }
      else
         {
            LIFE_LED2_ON;
         };
      if ((life_leds_status[2]&bit_mask)==0)
         {
            LIFE_LED3_OFF;
         }
      else
         {
            LIFE_LED3_ON;
         };

      if ((life_leds_status[3]&bit_mask)==0)
         {
            LIFE_LED4_OFF;
         }
      else
         {
            LIFE_LED4_ON;
         };
      if ((fire_led_status&bit_mask)==0)
         {
            FIRE_LED_OFF;
         }
      else
         {
            FIRE_LED_ON;
         };


      bit_mask = (bit_mask<<1);
      if (bit_mask == 0)  bit_mask = 0b00000001;


   }


Чувствую - перемудрил со вспышкой! :? :)
Проще надо сделать.
Понимаю парни, что в чужом коде разбираться "удовольствие" на любителя! :)
Постараюсь объясник ка все работает, но в двух словах не получиться. :?
Как реализована индикация?
Каждый светодиод жизни и диод вспышки имеют, как я их называю - регистры статуса.
Это простые переменные размером с байт (uint8_t).
Примерно четыре раза в секунду происходит опрос очередного бита регистра статуса, и если бит=1 диод включается, если 0 - выключается.
Биты опрашиваются друг за другом "по кругу".
Таким образом, чтобы диод горел постоянно - значение регистра статуса должно быть 11111111 = 255.
Чтобы не горел совсем - 00000000.
Чтобы мигал с частотой один Герц - 00001111.
2 Герца - 00110011
4 Герца - 01010101
Смысл ясен?

Вернёмся к вспышке.
Если огонь ведётся очередью - диод мигает с частотой 4 Гц.
Если одиночными - ... уже подзабыл. :) Но вроде выключается диод с окончанием звука выстрела.

Но ошибку надо искать в приведённом коде.
Может ошибка чисто моя, "человеческая", и компилятор не причем...

А лучше - переделать, как я уже предлагал ранее.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 июн 2012, 21:42 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 00:22
Сообщений: 1569
Откуда: Україна
Pingvin писал(а):
...
А лучше - переделать, как я уже предлагал ранее.

Согласен, лучше переделать так.

Код:
                     fire_led_status=ON; //включаем вспышкуем на 1 количество патронов
                     send_ir_package();   //Производим "выстрел"
                     last_simple=0;      //воспроизводим звук сначала
                     fire_led_status=OFF;

А еще лучше вообще засунуть fire_led_status=ON/OFF; в функцию send_ir_package(); Тогда и мигать будет соответственно скорострельности.

_________________
Нет предела совершенству, но ресурсы заканчиваются быстро.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 июн 2012, 09:58 
Не в сети
Старожил
Аватар пользователя

Зарегистрирован: 31 май 2012, 23:29
Сообщений: 507
Откуда: Украина, Энергодар
Запустил две платы. Могу прицельно стрелять. А попадание уже реализовано?

_________________
Точно попавшая в цель стрела - есть результат тысячи промахов.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 июн 2012, 14:01 
Не в сети
Старожил
Аватар пользователя

Зарегистрирован: 31 май 2012, 23:29
Сообщений: 507
Откуда: Украина, Энергодар
ТСОП пакет принимает.

_________________
Точно попавшая в цель стрела - есть результат тысячи промахов.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 июн 2012, 17:01 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
furhunter писал(а):
Запустил две платы. Могу прицельно стрелять. А попадание уже реализовано?

Конечно - только проследите, чтобы ЦВЕТА КОМАНД БЫЛЫ РАЗНЫЕ!
В этой версии прошивки дружественный огонь игнорируется (хотя включить легко).
Диоды жизни подпаяйте - все сами увидите! ;)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 532  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB