[an error occurred while processing this directive]
|
В AVR Studio 3.55, программа на асме, я устанавливаю прерывание от TWI активным и по его возникновении читаю регистр статуса TWI интерфейса twsr, если код соответствует чтению из twi, то считываю из внешней срам байт и запихиваю его в twrd примерно так:
Int_from_I2C:
lds r16,twsr
cpi r16,0xA8
breq tx_byte
cpi r16,0xB8
breq tx_byte
lds r16,twcr
ori r16,0x80
sts twcr,r16
reti;
tx_byte:
lds r16, 0x1100 ;0x1100 начальный адрес с которого начинается вн. срам
sts twrd,r16
lds r16,twcr
ori r16,0x80
sts twcr,r16
reti;
потом устанавливаю бит twint в регистре twcr и выхожу из прерывания.
E-mail: info@telesys.ru