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


 


rblk rep

blk done


 

MOV.B R14, 22 (SP), поместить счётчик
    ; в стек
CALL #sack ; отправить подтвержде-
    ; ние (АСК)
CALL #rbyte ; принять байт данных
MOV.B R14, 0(R9) ; переместить данные
    ; из блока
INC R15 ; инкремент счётчика
    ; положения блока
INC R9 ; инкремент указателя
    ; блока
CMP 22 (SP), R15, проверка завершения
    ; данных
JZ blk done ; повтор до завершения
CALL #sack ; отправить подтвержде-
    ; ние (АСК)
CMP 22 (SP), R15, проверка завершения
    ; данных
JNZ rblk rep ; повтор до завершения
CALL #nack ; отправить неподтверж-
    ; дение (NACK)
CALL #pbit ; отправить стоповую
    ; посьшку
MOV.B #01h, 30 (SP) ; возвращает «1» при
    ; успешном завершении
POP R13  
POP R12  
POP Rll  
POP RIO  
POP R15  
POP R14  
POP R9  
POP R8  
POP R7  
POP SR  
RET    

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

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

протоколов *******************************

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

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


sbit


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