www.open-tager.ru http://www.open-tager.ru/forum/ |
|
LTAscetik http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1565 |
Страница 486 из 532 |
Автор: | maksim [ 27 май 2017, 19:56 ] |
Заголовок сообщения: | Re: LTAscetik |
Что мне по быстрому придумать ?)))Завтра игра,нужно успеть сделать ))))Чтобы мк не менять ....... |
Автор: | Pingvin [ 27 май 2017, 20:08 ] |
Заголовок сообщения: | Re: LTAscetik |
maksim писал(а): Что мне по быстрому придумать ?)))Завтра игра,нужно успеть сделать ))))Чтобы мк не менять ....... В функции void hit_processing(trx_packet hit_packet)//îáðàáàòûâàåì ïîïàäàíèå вот это safe_counter = SAFE_DURATION*8; //âðåìÿ íåóÿçâèìîñòè меняете на safe_counter = 0; //âðåìÿ íåóÿçâèìîñòè |
Автор: | maksim [ 27 май 2017, 20:45 ] |
Заголовок сообщения: | Re: LTAscetik |
спасибо))) |
Автор: | maksim [ 28 май 2017, 10:59 ] |
Заголовок сообщения: | Re: LTAscetik |
на одном макете вот такой дефект ))))При ранении воспроизводит я ранин и сразу же окей выдвигаемся )))но дефект не сразу а появляется через некое время https://youtu.be/xOjloGEhpEI |
Автор: | maksim [ 28 май 2017, 14:32 ] |
Заголовок сообщения: | Re: LTAscetik |
Еще на 2 макетах выскочил глюк с неуязвимостю...... |
Автор: | Pingvin [ 28 май 2017, 16:13 ] |
Заголовок сообщения: | Re: LTAscetik |
Слишком мало информации - каким способом меняли настройки? Программой или с экрана? Только неуязвимость не настраивается? Когда прошивку меняли - звуки по новой заливали? После того, как звук "ОК выдвигаемся" проигрывает действительно новая игра стартует или просто звук? Если просто звук - нужно смотреть, эти звуки идут друг за другом в памяти? Информация о длине звука и адресе его начала так же храниться во внутренней eeprom контроллера. Что то у меня подозрения - корректно ли она работает? Будь таг у меня, я бы попробовал дамп eeprom памяти считать до настроек и после и сравнить. Но это программатор нужен SPI. Может по питанию контроллера керамических конденсаторов добавить 0.1 uF? Поставить радом с корпусом. |
Автор: | Pingvin [ 28 май 2017, 16:32 ] |
Заголовок сообщения: | Re: LTAscetik |
Цитата: Fi5t 25 Октябрь 2008 в 23:51 Забыл написать, что у атмеловских контроллеров есть так называемая «мертвая зона» EEPROM-a. У 64й атмеги, например, это все адреса от 0x00 — 0x100. Так же была замечена тенденция (по крайней мере на атмегах), чем круче модель (ATMeag32->64->128), тем больше у нее мертвая зона EEPROM. Причем в документации, про нее нифига не написано и подбирать придется в ручную. Ах да, чем же она такая мертвая эта зона. А тем, что запись и чтение в ней происходят через раз, а то и не происходят вообще. Дрочится конечно можно, но лучше оставить эти 100 адресов на советси разработчиков и работать со стабильным ПЗУ. http://easyelectronics.ru/avr-uchebnyj- ... eprom.html |
Автор: | Pingvin [ 28 май 2017, 16:41 ] |
Заголовок сообщения: | Re: LTAscetik |
Кидайте прошивку, погоняю на своем девайсе. А может и библиотека для работы с eeprom глючная, я штатную использовал из GCC (WinAVR). |
Автор: | Pingvin [ 28 май 2017, 17:10 ] |
Заголовок сообщения: | Re: LTAscetik |
Что то про "мёртвые зоны" в eeprom только сегодня узнал. Если они правда существуют, можно сдвинуть данные на 256 байт (или больше). Не проблема. Странно всё это... |
Автор: | Pingvin [ 28 май 2017, 17:22 ] |
Заголовок сообщения: | Re: LTAscetik |
Глюк при чтении EEPROM у ATmega8, ATmega32, ATmega128 Добавил(а) microsin В библиотеке avr-libc WinAVR (релиз 20080610) есть глюк, связанный с чтением EEPROM. В новых версиях WinAVR (например, релиз 20090313) этот глюк уже исправлен. Глюк связан с неучтенным ERRATA "Reading EEPROM by using ST or STS to set EERE bit triggers unexpected interrupt request". Глюк проявляется на микроконтроллерах ATmega8, ATmega32, ATmega128 (на ATmega16 такого глюка почему-то нет). Проявляется глюк в непредсказуемом переходе в младшие адреса при вызовах подпрограмм c:\WinAVR-20080610\avr\include\avr\eeprom.h -> eeprom_read_byte, eeprom_read_word, eeprom_read_dword, eeprom_read_block. Несколько вызовов могут пройти нормально, но на каком-то определенном адресе может произойти сбой. Я с этой проблемой проковырялся долго, так как сначала думал, что ошибка у меня в программе. Глюк таится в одной-единственной функции eeprom_read_byte (все остальные, как я понял, используют её вызовы, поэтому глюк наследуется). Код, на C, который есть в подпрограмме eeprom_read_byte (этот код устанавливает бит EERE), компилируется в ассемблерную инструкцию ST, которая и вызывает сбой. Старый глючный код eeprom.h: __ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p) { do {} while (!eeprom_is_ready ()); #if E2END <= 0xff="" br=""> EEARL = (unsigned)__p; #else EEAR = (unsigned)__p; #endif EECR |= (1 << EERE); return EEDR; } Исправить проблему можно, если обновить WinAVR. Можно просто вручную поправить код, написав это место на ассемблере (для установки бита EERE надо использовать инструкцию OUT или SBI), например вот так: __ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p) { do {} while (!eeprom_is_ready ()); #if E2END <= 0xff="" br=""> EEARL = (unsigned)__p; #else EEAR = (unsigned)__p; #endif //////////////////////////////////////////////////////////// // here fixed ERRATA Bug "Reading EEPROM by using ST or STS // to set EERE bit triggers unexpected interrupt request" // EECR |= (1 << EERE); __asm__ __volatile__ ( "sbi %[__eecr], %[__eere] \n\t" : : [__eecr] "i" (_SFR_IO_ADDR(EECR)), [__eere] "i" (EERE) ); return EEDR; } http://microsin.net/programming/avr-tro ... ouble.html Проверьте релиз вашей WinAVR! |
Страница 486 из 532 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |