亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? i2cm_io.asm

?? TI 281x DSP 各種通信接口驅動源代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;=====================================================================
;
; File Name     : I2CM_IO.ASM
; 
; Originator    : Digital Control Systems Group 
;                 Texas Instruments 
; 
; Description   : This file contains Virtual I2C Master implementation
;                 in software. 
;
; Routine Type  : "CcA Only"
;                               
; Target        : C28x
;
; Date          : 30/01/2002 (DD/MM/YYYY)
;=====================================================================
;typedef struct {   
;       unsigned int taskIndex;  /* Index into the task pointers    */
;       unsigned int I2CCSR;     /* I2C Control & Status register (LSB-bit counter) */
;       unsigned int I2CDAT;     /* I2C Shift Register              */
;       unsigned int bitCntr;    /* Bit Counter                     */  
;       void (*init)(void *);    /* Initialisation routine          */
;       void (*tick)(void *);    /* I2C tick function               */
;       }VI2CM_IO;  
;=====================================================================
        .include "..\include\i2cmpin.h"       
;=====================================================================
; Module definition for external referance
            .def    _vi2cmInit
            .def    _vi2cmTick
;=====================================================================

;=====================================================================
; i2cmTick : Initialization function
;======================================================================
_vi2cmInit:
		EALLOW
        MOVL    XAR6,#SCL_DIR           ; XAR5->GPIO direction register for SCL
        MOVL    XAR5,#SDA_DIR           ; XAR4->GPIO direction register for SDA

        TCLR    *+XAR6[0],#(SCL_BIT)  ; Set the SCL pin as input
        TCLR    *+XAR5[0],#(SDA_BIT)  ; Set the SDA pin as input
        
        MOVL    XAR6,#SCL_MUX           ; XAR5->GPIO MUX control register for SCL
        MOVL    XAR5,#SDA_MUX           ; XAR4->GPIO MUX control register for SDA
        

        TCLR    *XAR5,#(SDA_BIT)      ; Configure SDA pin in GPIO mode
        TCLR    *XAR6,#(SCL_BIT)        ; Configure SCL pin in GPIO mode        
		
        MOV     *XAR4++,#IDLE_INDEX 
        MOV     *XAR4++,#0              ; I2CCSR=0
        MOV     *XAR4++,#0              ; I2CDAT=0
        MOV     *XAR4++,#0              ; bitCntr=0
		EDIS
        LRETR

;======================================================================
; i2cmTick : Periodic tick function
;======================================================================
;======================================================================
; Entry Condition
; AR4=Module Handle
;======================================================================
_vi2cmTick:
		EALLOW
        MOVZ    AR0,*+XAR4[0]           ; AR0=taskIndex
        MOVL    XAR5,#TASK_PTR
        MOVL    XAR7,*+XAR5[AR0]        ; XAR7=task[taskIndex]
        MOVL    XAR6,#SCL_DIR           ; XAR5->GPIO direction register for SCL
        MOVL    XAR5,#SDA_DIR           ; XAR4->GPIO direction register for SDA
        MOVB    AR0,#31,UNC            ; AR0->offset for data register
        LB      *XAR7

;=========================================================================
; Issue Start Condition
; STATE 1: Check for SDA and SCL HIGH
;=========================================================================
START_S1:           
        MOV     *+XAR4[0],#START_S3_INDEX   
        TBIT    *+XAR6[AR0],#SCL_BIT
        MOVB    *+XAR4[0],#START_S2_INDEX,NTC       
        TBIT    *+XAR5[AR0],#SDA_BIT
        MOVB    *+XAR4[0],#START_S2_INDEX,NTC 
        EDIS   
        LRETR

;=========================================================================
; Issue Start Condition
; STATE 2: De-Assert SDA & SCL lines 
;=========================================================================
START_S2:
        TCLR    *+XAR6[0],#(SCL_BIT)      ; Set the SCL pin as input
        TCLR    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as input
        MOV     *+XAR4[0],#START_S1_INDEX   ; Update the Task to next state  
        EDIS   
        LRETR

;=========================================================================
; Issue Start Condition
; STATE 3: Drive SDA pin LOW
;=========================================================================
START_S3:   
        TSET    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as output
        TCLR    *+XAR5[AR0],#SDA_BIT        ; Drive the SDA pin LOW             
        MOV     *+XAR4[0],#START_S4_INDEX   ; Update the Task to next state  
        EDIS   
        LRETR

;=========================================================================
; Issue Start Condition
; STATE 4: Drive SCL pin LOW 
;=========================================================================

START_S4:
        TSET    *+XAR6[0],#(SCL_BIT)      ; Set the SCL  pin as output
        TCLR    *+XAR6[AR0],#SCL_BIT        ; Drive the SCL pin LOW 
        MOV     *+XAR4[0],#IDLE_INDEX       ; Update the Task to next state  
        EDIS   
        LRETR

;=========================================================================
; Issue Stop Condition
; STATE 1: Drive SDA pin LOW
;=========================================================================
STOP_S1:       
        TSET    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as output
        TCLR    *+XAR5[AR0],#SDA_BIT        ; Drive the SDA pin LOW          
        MOV     *+XAR4[0],#STOP_S2_INDEX    ; Update the Task to next state  
        EDIS   
        LRETR

;=========================================================================
; Issue Stop Condition
; STATE 2: De-assert SCL pin, move to next state if SCL is sampled HIGH
;=========================================================================
STOP_S2:
        TCLR    *+XAR6[0],#(SCL_BIT)      ; Set the SCL pin as input
        TBIT    *+XAR6[AR0],#SCL_BIT    
        MOVB    *+XAR4[0],#STOP_S3_INDEX,TC      
        EDIS   
        LRETR
        
;=========================================================================
; Issue Stop Condition
; STATE 3: De-assert SDA pin, move to next state if SDA is sampled HIGH
;=========================================================================
STOP_S3: 
        TCLR    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as input
        TBIT    *+XAR5[AR0],#SDA_BIT    
        MOVB    *+XAR4[0],#IDLE_INDEX,TC         
        EDIS   
        LRETR

;=========================================================================
; Issue Sr condition (Repeated Start)
; STATE 1: Drive SCL pin LOW
;=========================================================================
RSTART_S1:
        TSET    *+XAR6[0],#(SCL_BIT)      ; Set the SCL pin as output
        TCLR    *+XAR6[AR0],#SCL_BIT        ; Drive the SCL pin LOW 
        MOV     *+XAR4[0],#RSTART_S2_INDEX  ; Update the Task to next state  
        EDIS   
        LRETR

;=========================================================================
; Issue Sr condition (Repeated Start)
; STATE 2: De-assert SDA pin, move to next state if it is sampled HIGH
;=========================================================================
RSTART_S2:
        TCLR    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as input
        TBIT    *+XAR5[AR0],#SDA_BIT    
        MOVB    *+XAR4[0],#RSTART_S3_INDEX,TC        
        EDIS   
        LRETR

;=========================================================================
; Issue Sr condition (Repeated Start)
; STATE 3: De-assert SCL pin, move to STATE2 if it is sampled HIGH
;=========================================================================
RSTART_S3:
        TCLR    *+XAR6[0],#(SCL_BIT)      ; Set the SCL pin as input
        TBIT    *+XAR6[AR0],#SCL_BIT    
        MOVB    *+XAR4[0],#START_S3_INDEX,TC         
        EDIS   
        LRETR

;=========================================================================
; Issue Acknowledge
; STATE 1: Drive SCL LOW and then Drive SDA pin using ACKDT
;=========================================================================
ACK_S1:
        TSET    *+XAR6[0],#(SCL_BIT)      ; Set the SCL pin as output
        TCLR    *+XAR6[AR0],#SCL_BIT        ; Drive the SCL pin LOW 
        
        TBIT    *+XAR4[1],#ACKDT_BIT
        SBF     SEND_ACK_HI,TC
        
        MOV    *+XAR4[0],#ACK_S2_INDEX 
        TSET    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as output
        TCLR    *+XAR5[AR0],#SDA_BIT        ; Drive the SDA pin LOW             
        EDIS   
        LRETR

SEND_ACK_HI:
        TCLR    *+XAR5[0],#(SDA_BIT)      ; Set the SDA pin as input
        TBIT    *+XAR5[AR0],#SDA_BIT    
        MOVB    *+XAR4[0],#ACK_S2_INDEX,TC          
        EDIS   
        LRETR

;=========================================================================
; Issue Acknowledge
; STATE 2: De-assert SCL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本韩国一区| 亚洲免费在线电影| 色欧美片视频在线观看在线视频| 免费在线观看视频一区| 天堂久久久久va久久久久| 成人av先锋影音| 激情小说欧美图片| 精品一区二区三区视频在线观看| 日韩精品电影在线观看| 美女任你摸久久 | 国产日韩精品一区二区浪潮av| 91精品国产综合久久香蕉的特点| 欧美顶级少妇做爰| 91精品国产91久久久久久一区二区| 欧美精品亚洲二区| 日韩美女视频在线| 亚洲福利一区二区| 日韩二区三区在线观看| 国产剧情在线观看一区二区| 国产91对白在线观看九色| 成人18精品视频| 欧美性三三影院| 欧美成人激情免费网| 国产午夜一区二区三区| 亚洲视频小说图片| 午夜电影网亚洲视频| 紧缚奴在线一区二区三区| 成人看片黄a免费看在线| 欧洲激情一区二区| 精品国产乱码久久久久久浪潮| 欧美国产激情一区二区三区蜜月| 亚洲人成小说网站色在线 | 日韩黄色片在线观看| 精品一区二区三区在线观看国产| 成人动漫中文字幕| 91精品在线免费| 国产精品护士白丝一区av| 午夜免费久久看| 国产高清精品网站| 欧美日韩三级一区二区| 久久九九国产精品| 天天色 色综合| 成人精品高清在线| 日韩欧美123| 亚洲午夜精品网| 高潮精品一区videoshd| 在线成人午夜影院| 亚洲精品高清视频在线观看| 紧缚奴在线一区二区三区| 欧美亚洲精品一区| 中文成人综合网| 久久精品国产一区二区| 欧美性欧美巨大黑白大战| 欧美国产视频在线| 韩国女主播成人在线| 欧美色成人综合| 亚洲同性同志一二三专区| 国产一区二区三区国产| 日韩一区二区在线观看视频播放| 一区二区三区毛片| 成a人片亚洲日本久久| 久久蜜臀精品av| 日本成人超碰在线观看| 欧美美女直播网站| 一卡二卡三卡日韩欧美| 99久久免费视频.com| 国产精品日韩成人| 国产成人99久久亚洲综合精品| 日韩一级高清毛片| 喷白浆一区二区| 日韩欧美国产午夜精品| 日韩av电影一区| 日韩一区二区三区免费观看| 午夜一区二区三区在线观看| 欧美亚洲一区二区在线| 亚洲一区二区三区四区中文字幕| 99久久国产免费看| 1024成人网| 日本乱人伦aⅴ精品| 亚洲免费色视频| 91福利在线看| 亚洲午夜免费电影| 欧美麻豆精品久久久久久| 亚洲成人福利片| 宅男噜噜噜66一区二区66| 日韩高清不卡在线| 日韩视频一区二区三区在线播放| 久久国产精品一区二区| 久久久精品综合| hitomi一区二区三区精品| 国产精品国产三级国产a | 午夜欧美在线一二页| 3d动漫精品啪啪1区2区免费| 美女网站一区二区| 国产视频一区在线观看| 成人sese在线| 亚洲国产精品久久不卡毛片| 91精品国产免费久久综合| 国产专区综合网| 国产精品美女久久久久aⅴ| 91浏览器入口在线观看| 亚洲成人激情社区| 久久这里只精品最新地址| 成人黄页毛片网站| 亚洲bdsm女犯bdsm网站| 久久影视一区二区| 欧美制服丝袜第一页| 美女免费视频一区二区| 综合电影一区二区三区| 3751色影院一区二区三区| 国产精品99久久久久久久vr | 日产国产高清一区二区三区| 久久久久久久电影| 欧美伊人精品成人久久综合97| 精品制服美女久久| 中文字幕综合网| 欧美大胆一级视频| 91一区一区三区| 久久国产精品无码网站| 综合久久一区二区三区| 欧美大片在线观看一区二区| 精品一区二区国语对白| 久久久久久免费| 欧美性生交片4| 高清不卡一区二区| 午夜精品在线视频一区| 久久久国产精品午夜一区ai换脸| 一本色道亚洲精品aⅴ| 寂寞少妇一区二区三区| 亚洲chinese男男1069| 国产精品久久国产精麻豆99网站| 91精品国产综合久久福利| 94色蜜桃网一区二区三区| 韩国av一区二区| 日本视频在线一区| 亚洲小少妇裸体bbw| 中文字幕一区二区三区不卡| 久久日韩精品一区二区五区| 欧美日韩一区二区在线观看 | 日韩av电影免费观看高清完整版在线观看| 亚洲日本成人在线观看| 日韩你懂的在线观看| 91精品福利在线| 99久久免费国产| 国产成人啪午夜精品网站男同| 蜜桃一区二区三区四区| 香蕉影视欧美成人| 日韩在线a电影| 日韩国产欧美三级| 日韩黄色免费电影| 性久久久久久久久| 日韩国产精品久久| 日韩av成人高清| 免费在线观看精品| 久久精品国产亚洲高清剧情介绍 | 成人av在线播放网站| 国产一区999| 国产精品一区二区三区四区| 国内外成人在线| 国产精品18久久久| 日韩亚洲电影在线| 1区2区3区国产精品| 日韩一区二区三免费高清| 欧美挠脚心视频网站| 69成人精品免费视频| 日韩片之四级片| 久久亚洲精品小早川怜子| 久久网站热最新地址| 国产农村妇女精品| 亚洲欧美日韩国产一区二区三区 | 久久久蜜臀国产一区二区| 久久久久久黄色| 中文字幕中文字幕一区| 在线观看日韩毛片| 欧美日本一道本在线视频| 欧美在线观看一区二区| 欧美性videosxxxxx| 日韩一区二区三| 国产香蕉久久精品综合网| 亚洲人精品一区| 日韩精品午夜视频| 国产一区二区中文字幕| 91亚洲男人天堂| 日韩午夜在线观看视频| 国产欧美日韩在线观看| 亚洲美腿欧美偷拍| 免费美女久久99| 北岛玲一区二区三区四区| 欧美日韩国产首页在线观看| 久久久综合视频| 亚洲最新视频在线观看| 国内精品免费在线观看| 精品免费一区二区三区| 综合在线观看色| 美女国产一区二区三区| 91麻豆国产精品久久| 日韩精品一区二区三区中文精品| 亚洲精品视频在线看| 亚洲三级电影网站| 蜜桃av一区二区三区电影|