www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Вопросы по компилятору avr-gcc (WinAVR). http://www.open-tager.ru/forum/viewtopic.php?f=5&t=330 |
Страница 3 из 4 |
Автор: | Pingvin [ 16 ноя 2011, 09:41 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
timach писал(а): а чо у тебя после фигурной скобки точка с запятой идут ну и код у тебя лапша, писал бы в одном стиле и еще лучше было бы работать с объектами Так это я уже начал пробовать различные варианты. И откуда в Си объекты? Это же не объектно-ориентированный язык. Может, структуры имелись в виду? |
Автор: | tommy [ 16 ноя 2011, 10:20 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
ох, ну и суровый код. а есть вероятность, что пока вы этот код дебажите прерывание успевает срабатывать ещё раз и вы уже смотрите на следующий вызов прерывания? а так - хз, синтаксически вполне себе валидный си код, только непонятный [offtop] - как-то странно в прерывании пульки считать, да ф-ции всякие вызывать.[/offtop] |
Автор: | Pingvin [ 16 ноя 2011, 14:57 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
tommy писал(а): ох, ну и суровый код. а есть вероятность, что пока вы этот код дебажите прерывание успевает срабатывать ещё раз и вы уже смотрите на следующий вызов прерывания? а так - хз, синтаксически вполне себе валидный си код, только непонятный [offtop] - как-то странно в прерывании пульки считать, да ф-ции всякие вызывать.[/offtop] Функции объявлены как inline (встраиваемые), так что разницы особой нет. Прерывание формирует звук выстрела. Два режима огня, соответственно, звук для них нужно воспроизводить по разному. Если очередь - производим часть звука и смотрим, нажат ли курок. Если нажат - делаем выстрел (посылаем ИК-пакет, количество пулек уменьшаем) и звук выстрела воспроизводим с начала. Если курок отпустили - надо звук проиграть полностью до конца. Да и светодиодом вспышки надо помигать (тут ещё косяк вылез, но это отдельная тема)! Потому и if else полно! А вот про прерывания - надо старую версию потестить, где не разрешал глобально прерывания - как там работает. Сегодня не успел (в конторе код пишу, дома нет такой возможности). И даже если я смотрю на следующее прерывание, то переменные тоже должны поменять значение, а я за ними слежу. И код в else выполняется даже когда bullets>0. |
Автор: | tommy [ 16 ноя 2011, 15:35 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
тяжеловато всё одно такой подход в коде читать (эт я про общий стиль и про вызов ф-ций и про имена их (CUT_OFF_SOUNT, fire_mode() vs get_keyboard_status() vs BULLETS_OUT_LED_ON)). но эт не сильно важно - наверняка всё ещё поменяется к релизу. а вот с точки зрения обывателя нет ведь разницы между стрельбой очередью и одиночными. выстрел и так громкий плюс затухает быстро, что нет смысла его в микшер запихивать, а лучше просто прекратить воспроизведение выстрела и начать с начала. ведь можно и одиночными стрелять довольно быстро, чтоб получилась по звуку очередь. зачем тогда разделять одно от другого? |
Автор: | tommy [ 16 ноя 2011, 15:37 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
а по поводу выполнения else блока - посмотрите .lss файлик. там наверняка есть подсказка отчего так. |
Автор: | Pingvin [ 16 ноя 2011, 16:19 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
tommy писал(а): тяжеловато всё одно такой подход в коде читать (эт я про общий стиль и про вызов ф-ций и про имена их (CUT_OFF_SOUNT, fire_mode() vs get_keyboard_status() vs BULLETS_OUT_LED_ON)). но эт не сильно важно - наверняка всё ещё поменяется к релизу. а вот с точки зрения обывателя нет ведь разницы между стрельбой очередью и одиночными. выстрел и так громкий плюс затухает быстро, что нет смысла его в микшер запихивать, а лучше просто прекратить воспроизведение выстрела и начать с начала. ведь можно и одиночными стрелять довольно быстро, чтоб получилась по звуку очередь. зачем тогда разделять одно от другого? Со звуком я так и делаю! Никакого микшера нет. Именно Цитата: просто прекратить воспроизведение выстрела и начать с начала так и делаю.Но пули то вылетать должны очередью? Или предлагаете просто звук изменить, а стрелять так же одиночными? P.S. Надеюсь, более подробные коментарии помогут легче понять код. Про SOUNT (опечатка, имелось в виду, конечно, SOUND), знаю, лень было исправлять. Сейчас в автаматик интегрирую платку. Потом хочу на виде снять, как работает, да выложить куда-нибудь. |
Автор: | tommy [ 16 ноя 2011, 22:53 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
про микшер - эт я загнал про космические корабли в театрах. ну, хз. этож не rocket science - тут как угодно будет работать. мне щас вот кажется, что обработка кнопок, пусть даж и стрельбы, нафик в прерывании не нужна больше фоток и видео! |
Автор: | Pingvin [ 27 фев 2012, 08:22 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
Побаловался с ЖК-индикатором. Возникла проблема с отображением символов кириллицы! По идее, нужно передавать код символа в кодировке ASCII (она же DOS-овская cp866). Но редактор AVR-студии то работает с виндовой кодировкой CP-1251, и, понятно, что вместо кириллических символов отображается чётре что! Как заставить редактор студии работать с ДОСовской кодировкой? Или таки придется писать функцию-конвертер кодировок? |
Автор: | Pacifist [ 27 фев 2012, 10:25 ] | ||
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). | ||
Я себе такую прогу написал. В интернете скрипты есть готовые, но я как-то не пользовал, предпочитаю вручную.
|
Автор: | Pingvin [ 27 фев 2012, 11:34 ] |
Заголовок сообщения: | Re: Вопросы по компилятору avr-gcc (WinAVR). |
Pacifist писал(а): Я себе такую прогу написал. В интернете скрипты есть готовые, но я как-то не пользовал, предпочитаю вручную. Спасибо - уже скачал подобную софтинку. Но все это как то "не кошерно". Тут бы макрос какой-нибудь мудрёный придумать ... |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |