Реализация шины SMBus на базе микроконтроллера MSP430



POP Rll
POP RIO
POP R15
POP R14
POP R9
POP R8
POP R7
POP SR
RET  

Подпрограммы нижнего уровня, общие для всех протоколов *****************************************************

*****************************************************

отправка стартовой последовательности и адреса *****************************************************


 
 

дополнительное освобождение линии с целью использования этой же подпрограммы для команды повторяю­щегося старта отправка стартовой последовательности BIS.В #SDA, DIR BIS.В #SCL, DIR отправка адреса MOV.B #07h, R13 ; счётчик на 7 бит ; адреса

sbit

BIC.B #DNC, DIR ; проверка освобождения шины

MOV #05h, R1C

wait

MOV.B IN, Rll

AND CMP

#DNC, Rll #DNC, Rll

JNZ DEC JNZ

busy

RIO

wait

BIC.B #DNC, DIR

rsbit


«отпустить» обе линии

счётчик на 50 микросе­кунд

копировать состояние

входов в R11

маска входов

если линии SDA или SCL

в лог. «0»то шина

занята

декремент счётчика