Страница 1 из 1

Модуль TWI МК ATmega8A

Добавлено: Пн июн 30, 2014 14:33:45
СЦБист
Есть одна проблема. Не могу разобраться с режимом ведомый приемник.

В нете нарыл следующую инфу. Для инициализации модуля TWI в режиме ведомый приемник сначала в старшие биты регистра TWAR заносим адрес. Потом в регистр TWCR необходимо записать следующее.

TWINT - 0
TWEA - 1 (будет посланно потверждение ACK)
TWSTA - 0
TWSTO - 0
TWWC - 0
TWEN - 1

Когда прийдет пакет SLA+W установиться флаг TWINT.

Потом проверяю код статуса. Он будет $60.

Далее в регистр TWCR записую следующее.

TWINT - 1
TWEA - 1 (будет посланно потверждение ACK)
TWEN - 1

Вопрос : нужно-ли теперь сбрасывать флаг TWINT ? :shock:

Re: Модуль TWI МК ATmega8A

Добавлено: Пн июн 30, 2014 19:59:03
Deer
СЦБист писал(а): TWINT - 1
Вопрос : нужно-ли теперь сбрасывать флаг TWINT ?
Чем запись единицы - не сброс флага? С записью единицы модуль TWI поймёт, что программа отработала и флаг сбросится до следующего события...

Re: Модуль TWI МК ATmega8A

Добавлено: Пн июн 30, 2014 20:52:20
СЦБист
Deer писал(а):Чем запись единицы - не сброс флага?
В книгах написано, что флаг TWINT устанавливается при наступлении какого-то события.

Я так понимаю в 1 ?

Что записью 1 в бит TWINT - в реале там будет 0 , а потом при наступлении события 1 ?

Когда наступило событие в TWINT будет 1.

Когда там уже есть 1 и я туда записую 1 - это значит , что я сбрасываю флаг - и там будет ноль?