реклама на сайте
подробности

 
 
> Глюк в новых Atmega8, Это любопытно.
_Pasha
сообщение Jan 14 2010, 16:07
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Доброго времени!
Наблюдаю странный глюк в купленных недавно мегах 8. Старых камней нету - все горелые. Пожалуйста, если кому интересно, проверьте, не боян ли.

Исходные: глючит программа при read-modify-write к регистру компаратора. прерывания компаратора запрещены. Общие разрешены.
Код
void do_ACMP(void)
{
  if(ACSR &(1<<ACI))
  {
    // ACSR |= (1<<ACI); // так не работает
    ACSR = (1<<ACI); // пришлось объяснить по-русски, куда ему пойти
    // далее по тексту - к делу не относится.
  }
}


WinAVR, конечно же ACSR |= (1<<ACI) оптимизирует до sbi ACSR,ACI - и начались пляски. Предположительно, уходит в отсутствующий вектор прерывания, видать какие-то иголки на вход ACIE наводятся. Раньше, когда писАл на асме, никогда не пользовался битовыми инструкциями применительно к ACSR, поэтому не могу знать, как давно такое безобразие имеет место быть.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016