IMHO этот пример лучше не использовать. 1. лучше все переписать на С 2. использовать не константы типа 0x18 а символическое имя ( вроде twiSLA_W_ACK) 3. В примере не все состояния проверяются, например после комнады установки START кондишн, я не увидел проверки флагов ( должно быть старт или повторный старт). 4. Проверка там заокментирована потому что при посылке адреса устройства вызывается функция I2C_SEND_Byte, которая не корректно проверяет статус. Статусы после послыки адрес+чтение, адрес+запись и просто данные, надо проверять разные...
Лучше всего взять даташит на авр и там в описании twi есть замечательная таблица Status Codes for Master Transmitter Mode и там все написано что нужно делать приложению и что будет делать twi... И примеры есть на С и асм
|