Как правильно послать STOP в I2C?

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 17
Зарегистрирован: Пт янв 16, 2015 23:15:37

Сообщение Jen0k »

Курю ассемблер, паралельно колхожу TWI без богомерзких делеев, вводящих контроллер в кому.

Вот что наколхозил:
Изображение

Вот тут http://easyelectronics.ru/interface-bus-iic-i2c.html и тут http://www.gaw.ru/html.cgi/txt/interface/iic/iic5_2.htm говорят, что правильно как у меня один в один.

Что я делаю не так? Или это протеус глючит?
Реклама
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

Стоп условие сформировано, что смущает? То, что дебуггер сначала считывает SDA=0, а потом пишет, что это был стоп?
Реклама
Родился
Сообщения: 17
Зарегистрирован: Пт янв 16, 2015 23:15:37

Сообщение Jen0k »

Rtmip
Ну, да. По идее, из вывода дебага получается, что начинает передаваться второй байт и после первого его бита идет стоп, разве не так? Я не знаю, может так и должно быть?
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Код: Выделить всё

;**************************************************
;*      ;;+Подпрограмма формирование STOP;;*      *
;**************************************************
STOP:
		outi	TWCR,(1<<TWINT)|(1<<TWSTO)|(1<<TWEN);/ Формирование режима STOP
waitTWIStop:
		lds		temp,TWCR			;= Считываем регистр управления
		sbrc	temp,TWSTO			;= Проверяем бит STOP
		rjmp	waitTWIStop			;= Не установлен - повторяем проверку
		ret
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

Jen0k , все правильно, так и должно быть, иначе как вы будете ловить ошибки, в случае их появления? :idea:
А так, вы видите, что вы там "напередавали" :))
Реклама
Родился
Сообщения: 17
Зарегистрирован: Пт янв 16, 2015 23:15:37

Сообщение Jen0k »

Понял, оказывается зря панику поднял. Всем спасибо!
Реклама
Ответить

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