Цитата(TamTam @ Jul 19 2006, 12:23)
покапайся
ТУТКстати несовсем правильно 24XXX там есть разница в адресации, если надо могу скинуть сурц с моделью в протеусе, для 24Х256
То, что адресация разная я знаю. И, как правило (по крайней мере, я так писал) за формирование адреса отвечает основная программа. К сожалению, у меня сейчас нет времени делать эту библиотеку, но обращение к ней я подразумевал следующим образом:
rcall TWI_START
; Ожидаем прерывание от TWI
rcall TWI_ADR
;ожидаем прерывание от TWI
ldi statusTWI,АДРЕС1
rcall TWI_DATA_W
;ожидаем прерывание от TWI
ldi statusTWI,АДРЕС2
rcall TWI_DATA_W
;ожидаем прерывание от TWI
ldi statusTWI,ДАННЫЕ
rcall TWI_DATA_W
;ожидаем прерывание от TWI
rcall TWI_STOP
.
.
.
Кстати прошу прощение, что не правильно определил константы можно вот так.
.equ i2crd = 1
.equ i2cwr = 0
.equ SLA_W $A0+i2cwr
.equ SLA_R $A0+i2crd
Давно хотел написать i2c под TWI на ассемблере, но всё руки не доходят, да и последние проекты пишу на СИ.