ВУЗ:
Составители:
Формат регистра состояния TWSR:
Регистр TWSR
7 6 5 4 3 2 1 0
TWS7 TWS6 TWS5 TWS4 TWS3 - - -
Регистр находится в состоянии «только чтение». Разряды TWS7…3 отражают со-
стояние модуля TWI.
3.6.8. Взаимодействие прикладной программы с модулем TWI
Взаимодействие основывается на использовании прерывания от модуля, кото-
рое возникает после каждого события на шине (прием байта, формирование
СТОП, СТАРТ и т.п.).
Если прерывание от модуля TWI запрещено, то необходимо постоянно сле-
дить за флагом TWINT для реагирования на события, происходящие на шине.
Установка флага TWINT регистра TWCR означает, что модуль TWI закончил
выполнение очередной операции и ожидает реакции программы.
В разрядах TWS7…3 регистра TWSR формируются значения, характеризую-
щие текущее состояние шины TWI. Программа должна проанализировать это зна-
чение и задать дальнейшее поведение модуля TWI (c помощью регистров TWCR
и TWDR).
Рассмотрим взаимодействие прикладной программы с модулем TWI.
Действие: передача одного байта данных от ведущего к ведомому.
Состояние шины TWI:
61 3
SLA+W Данные
52
1...7 - шаги программы
7
СтопA
- флаг TWINT установлен
4
A
1 – выполнить запись в TWCR для формирования состояния СТАРТ.
2 – флаг TWINT установливается в 1. Код статуса в TWSR подтверждает
успешное формирование состояния СТАРТ.
3 – убедиться в успешном формировании состояния СТАРТ. Загрузить
SLA+W (адресный пакет со сброшенным битом Ц – передача данных) и в регистр
TWDR и сформировать требуемые флаги в TWCR, сбрасывая флаг TWINT.
4 – флаг TWINT устанавливается в 1. Код статуса в TWSR подтверждает пере-
дачу байта SLA+W и прием А.
112
Страницы
- « первая
- ‹ предыдущая
- …
- 110
- 111
- 112
- 113
- 114
- …
- следующая ›
- последняя »