Глюк работы АТMEGA128 по I2C! Подскажите кто знает!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Neverman 15 ноября 2004 г. 11:49

Если пишу функцию отправки байта по I2C с опросом флага готовности, то все работает прекрасно.
НО!
Как только начинаю работать по прерыванию (в C IAR - это #pragma vector=TWI_vect) то после однократной отправки условия "СТАРТ", через запись:
TWCR|=(bit(TWINT)|bit(TWSTA));

и завешивания МЕГИ128 по while(1){;} начинают генерироваться и срабатывать прерывания по вектору I2C c максимально возможной частотой (у меня это примерно 400кГц). Это при том что по обработчику вектора стоит команда переключения ножки МЕГИ из 0 в 1 и обратно (чтобы оценить частоту прерываний). В обработчике бит TWINT регистра TWCR я не сбрасываю, то есть I2C должна вообще "заморозиться" после выдачи "СТАРТа".

Кто знает откуда берутся эти прерывания??
PS: частота этих прерываний не зависит от настройки скорости I2C вообще никак.

Заранее всем спасибо!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru