roboforum.ru

Технический форум по робототехнике.

TWI и Clock-Stretching

TWI и Clock-Stretching

T-Xen » 07 фев 2012, 10:25

Добрый день всем! :)
Встала проблема растяжения синхронизирующего импульса на ATmega. В доках говорится, что когда slave не успевает обработать запрос, то он может выставить на линии SCL ноль, тем самым, попросив мастера подождать.
Подскажите, пожалуйста, как это на практике сделать в аппаратном TWI?
Требуется чтобы slave производил опрос каналов своего АЦП и эти данные выдавал мастеру при его запросе. Но прерывания от АЦП сбивают передачу данных. :roll:

Re: TWI и Clock-Stretching

boez » 07 фев 2012, 11:28

Правильный ответ: реорганизуй прерывания так, чтобы не сбивали :) Наверняка у тебя там просто слишком много кода в прерываниях.
А вообще - в даташите написано, что clock stretch делается путем задержки сброса бита TWINT. Т.е. автоматически - пришло прерывание, клок упал вниз и будет там лежать до тех пор, пока ты не запишешь 1 в TWINT, сбросив его.


Rambler\'s Top100 Mail.ru counter