[an error occurred while processing this directive] [an error occurred while processing this directive]
Флаги прерываний вообще рекомендуется сбрасывать в самом начале ISR
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено BLACKEAGLE 19 февраля 2002 г. 15:40
В ответ на: Вопрос по реализации I2C в Cygnal C8051F020 отправлено RadiM 19 февраля 2002 г. 12:03

Особенно это касается I2C, и вот почему:

Дело в том, что если SI встал в "1" при SCL=0, шина ЗАСТЫНЕТ в текущем состоянии до сброса Вами SI в "0", после чего продолжит свою работу с того же состояния - тут можно попасть, особенно если кто-то на шине решит, что пришел таймаут, и начнет ломиться в прикрытую дверь.

Но тем не менее, "загрузку данных" Вам никто не мешает делать и вне ISR, только учтите вышесказанное и корректно обрабатывайте все возможные 27.5:) состояний шины.

По I2C есть весьма грамотные аппликухи у Philips.

Удачи!

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

Ответы



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

E-mail: info@telesys.ru