Модуль TWI МК ATmega8A

Обсуждаем контроллеры компании Atmel.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

Есть одна проблема. Не могу разобраться с режимом ведомый приемник.

В нете нарыл следующую инфу. Для инициализации модуля 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:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 211
Зарегистрирован: Пт июл 31, 2009 19:45:11
Откуда: Санкт-Петербург

Сообщение Deer »

СЦБист писал(а): TWINT - 1
Вопрос : нужно-ли теперь сбрасывать флаг TWINT ?
Чем запись единицы - не сброс флага? С записью единицы модуль TWI поймёт, что программа отработала и флаг сбросится до следующего события...
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

Deer писал(а):Чем запись единицы - не сброс флага?
В книгах написано, что флаг TWINT устанавливается при наступлении какого-то события.

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

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

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

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

Вернуться в «AVR»