www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Проект - умная аптечка (релиз) http://www.open-tager.ru/forum/viewtopic.php?f=14&t=2198 |
Страница 4 из 6 |
Автор: | mail_robot [ 29 окт 2013, 12:41 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
разливное это для открытия нужного портала, очень помогает |
Автор: | Инквизитор [ 01 ноя 2013, 00:38 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
Собрал для теста ) Решаю ребус с подключением сегментов ) В схеме обозначил D2-D8 пытаюсь как то сопоставить a-g PS: Какая то беда с динамической индикацией... При нулях - горит по одному сегменту во всех разрядах, можно было бы предположить что это сегмент G - имеем типа прочерк. Но дальше сумел выставить счетчик на 10 (посчитал кол-во пыхов) но с каждым пыхом одинаково меняются разряды сотен и десятков. Очень подозреваю что на самом деле должен быт SLED с общим катодом, а не анодом как на схеме.... |
Автор: | mail_robot [ 01 ноя 2013, 02:15 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
да, так и есть. Должен быть общий катод. Я сперва схемку накидал, потом отпаял единственный имевшийся индикатор и не особо проверяя анод там или катод подпаял. Потом просто выставил в одном порту нолики в другом единички, так и так, и посмотрел в каком положении работает ) Косяк в том что я схемке уделил слишком мало внимания. Сейчас займусь. И сегменты расставлю. А то там долго искать придется что куда |
Автор: | mail_robot [ 01 ноя 2013, 04:02 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
LED индикатор в схеме с общим катодом если нужен с общим анодом - открываем исходники, ищем user.h и правим в нем маски символов на инвертированные (массивы const int8_t _simbol[13], const int8_t _slider[6]) дальше открываем main.c и правим функцию Refresh - инвертируем в опросе биты PORTB<0:3> В функции sliders вместо PORTB = 0b00000000; пишем PORTB = 0b00000111; ну вроде ничего не забыл во время первого старта аптечки на экране будет отображаться всякая ерунда, потому как в EEPROM еще ничего не записано и читается что попало (конкретно 0xFF). Удерживая кнопку New Game включаем питание и заходим в конфигуратор (экранчик мигнет красивой заставкой. Держим кнопку пока не увидим заставку, отпускаем кнопку), устанавливаем нужные значения двумя другими кнопками, еще разок жмем New Game. Аптечка подтверждает что сохранила данные и перешла в активный режим еще раз весело помигав экранчиком. Играем. Теперь при нажатии New Game аптечка посылает 1(!) пакет команды и минусует одну жизнь из памяти. Не из EEPROM. Там так и остается настроенное в прошлый раз число )) Сброс аптечки производится выключением питания. (Дополнил первые посты в теме актуальной информацией и описанием) |
Автор: | Инквизитор [ 01 ноя 2013, 09:52 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
mail_robot писал(а): LED индикатор в схеме с общим катодом если нужен с общим анодом - открываем исходники, ищем user.h и правим в нем маски символов на инвертированные (массивы const int8_t _simbol[13], const int8_t _slider[6]) дальше открываем main.c и правим функцию Refresh - инвертируем в опросе биты PORTB<0:3> В функции sliders вместо PORTB = 0b00000000; пишем PORTB = 0b00000111; А лучше сгонять до радиодеталей ) Я так и сделаю ) |
Автор: | mail_robot [ 01 ноя 2013, 10:54 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
у нас там улица такая рядом с магазином - хрен запаркуешься. 1 карман и 3 эвакуатора все время дежурят. хз чего проще... есть правда еще парочка магазов, но там ассортимент ни в ... ни в красную армию в общем |
Автор: | Инквизитор [ 01 ноя 2013, 21:26 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
Собрал! Работает! Спасибо В процессе тестирования выяснил: Глюк: после девятый десяток проскакивает. т.е. после 100 идет 90. Коды не смотрел, но по всей видимости команда не Full Ammo ? А Clips Pickup (0x8A 0x00-0x0F) т.к. второй раз на майлсе не работал (стояли настройки что аммо бокс можно один раз брать) И Add Health +5, а не Full Health. Скомпелируй пжл для меня с Full Ammo и Full Health.Хочу сэкономить нажатия кнопок ))) И подскажи чем компилировать? Думаю что команды то научусь менять) И еще мерцание очень заметно. Может увеличить время горения? |
Автор: | mail_robot [ 02 ноя 2013, 08:04 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
команды я брал точно такие же, как на лазерваровской хреновине medic/ammo. Особо не вдавался в из подробности если честно )) Просто соснифил их оттуда логическим анализатором и загнал в код программы Глюк десяток тоже вчера неожиданно обнаружил, поправлю. Гдето неправильно условие стоит в if. Главное в блоке программирования такого глюка нет, а в игровом блоке есть. AddHealth действительно сейчас настроена на +5, потому как мы всем городом+Владивосток приняли соглашение об общих настройках. У всех по 20 здоровья, а у разных видов оружия разный урон. Легкие ПП - 4, штурмовые 5, пулеметы - 7, снайпера легкие - 10, снайпера тяжелые - 20 (таких пока нет). Договорились что медик будет пополнять 1 урон штурмовика. То есть +5. У вас конечно может отличаться. Если что команды меняются ооочень просто. Открываем файлик user.h. Там будут 3 очень хорошо закоментированных массива констант с командами, которые передаются в каждой из функций. Просто пишем там то что нам нужно по нажатию нужной кнопки, заливаем, пользуемся. Я это все дело компилирую стандартными микрочиповскими инструментами (бесплатными) MPLAB X IDE http://www.microchip.com/pagehandler/en ... ly/mplabx/ и на него ставится компилятор XC8 Free. Он как бы коммерческий, просто во фришной версии не делает выравнивания кода и не оптимизирует на скорость/размер. А так все то же самое http://www.microchip.com/pagehandler/en ... s/mplabxc/ если что, у меня на него таблетка есть ))) Досталась случайно от сочувствующих. Но разницы с таблеткой и без я особой не заметил Мерцание дисплея пофиксил уже, дня три еще назад. Просто уменьшил прелоад таймера 1 с 16000 до 10000 тиков в функции Refresh. Мерцание на глаз стало вообще не заметным Сейчас поправим все глючки. Мне вообще было интересно когда соберут первую копию, чтобы хоть чтото что я не заметил вылезло. |
Автор: | mail_robot [ 02 ноя 2013, 08:13 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
Код: const uint16_t _Start[24]= 2400, 1200, 1200, 1200, 1200, 1200, 2400, 2400, // 0b10000011 = 0x83 Header 1200, 1200, 1200, 1200, 1200, 2400, 1200, 2400, // 0b00000101 = 0x05 NewGame 2400, 2400, 2400, 1200, 2400, 1200, 1200, 1200; // 0b11101000 = 0xE8 End const uint16_t _Medic[24]= 2400, 1200, 1200, 1200, 1200, 1200, 1200, 1200, // 0b10000000 = 0x80 Header 1200, 1200, 1200, 1200, 1200, 2400, 1200, 2400, // 0b00000101 = 0x05 5x health 2400, 2400, 2400, 1200, 2400, 1200, 1200, 1200; // 0b11101000 = 0xE8 End const uint16_t _Ammo[24]= 2400, 1200, 1200, 1200, 2400, 1200, 2400, 1200, // 0b10001010 = 0x8A Header 1200, 1200, 1200, 1200, 2400, 1200, 2400, 1200, // 0b00001010 = 10x ammo pack 2400, 2400, 2400, 1200, 2400, 1200, 1200, 1200; // 0b11101000 = 0xE8 End вот что сейчас отправляется по кнопочкам |
Автор: | mail_robot [ 02 ноя 2013, 08:35 ] |
Заголовок сообщения: | Re: Проект - умная аптечка (релиз) |
пофиксил 9-ку после 100 вниз и мерцание дисплея Код: if (RB3==0 && RA7 == 1) { if ((DIGIT1+DIGIT2+DIGIT3)>0) NewGameFlag = 1; // to decrement LED digits // before sending command if (DIGIT3 > 0) DIGIT3--; // decrement health else { if (DIGIT2>0) { DIGIT2--; DIGIT3 = 9; } else { if (DIGIT1>0) { DIGIT1--; DIGIT2 = 9; DIGIT3 = 9; // этой строчки не хватало для корректной работы счетчика } } } не хватало одной строчки |
Страница 4 из 6 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |