bialix-lazy (29.03.2011 16:47, просмотров: 7230)
тоже спрошу про I2C в мегах. Не могу понять такой вещи: практически на все команды модуль TWI реагирует прерыванием по выполнению команды, включая и такую специальную команду как сделать START. Однако! Если я задаю команду STOP (через бит TWSTO), то по выполнению оной прерывание не возникает. Однако поиск по гуглю выявил, что при этом необходимо мониторить этот бит TWSTO, он сам сбросится, когда STOP будет сформирован. Но ведь некрасиво получается: весь обмен идет по прерываниям, а STOP надо как-то вручную мониторить? Причем похоже, что если не мониторить, то драйвер TWI начинает потихоньку сходить с ума. Ну если работать на скорости под упор 400кГц тактовой, то оно как бы не сильно критично, пока туда-сюда из прерывания выйдешь и поймешь, что можно новый цикл начинать, то нужное время и пройдет. На более же низких скоростях ерунда какая-то получается. Как вы с этим боретесь?