Доброго времени суток всем. С армами дружу совсем недавно, вот столкнулся с проблемой решения которой пока не нахожу.
Контроллер сопряжен через I2C с ЦАПом ad5315 по средствам I2C. МК должен работать в режиме МАСТЕР соотвественно ЦАП в режиме СЛЕЙВ. Задача проста, послать по шине адрес ЦАПа, указатель (Pointer) и значения старший байт и младший, всего получается 4 байта.
Как я понял, необходимо для начала записать в регистр I2С0ADR - адрес ведомого устройства т.е. моего ЦАПа(или этот регистр хранит адрес самого МК при работе в слейв режиме???). Далее в I2С0DAT пишем поинтер, после чего :
I2С0CONCLR = 0x000000FF; //Clear all I2C settings
I2С0CONSET = 0x00000040; //Enable the I2C interface
I2С0CONSET = 0x00000020; //Start condition
НО!! после данных операций мне же надо проверить бит подтверждения ACK? Проверяю его вычитав I2С0STAT, но почемуто ЦАП мне не присылает его. В чем я неправ?
2й вопос
Возможно ли повторить данные операции для передачи последующих данных?
Зарание спасибо!
П.С. если у кого тоуже есть готовая процедурка для подобных задач, буду очень признателен если позволите на нее взглянуть. :)