📄 et21x130_i2c_et.asm
字号:
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (77)
; M_BS(I2C_PORT, SCLK); //SCLK=1
BS _ET21x130_CTRL,3
NOP ;inline asm
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (79)
; M_BC(I2C_PORT, SCLK); //SCLK=0
BC _ET21x130_CTRL,3
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (80)
; ET21x130_IO_Ctrl = 0x74; //#0b01110100 SDATA == INPUT (FOR DATA RECEIVE)
MOV A,#0x74
MOV _IOCD,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (86)
; I2C_DataRead();
CALL _I2C_DataRead
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (87)
; ET21x130_IO_Ctrl = 0x70; //for SDATA OUTPUT
MOV A,#0x70
MOV _IOCD,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (92)
; I2C_StopBit();
CALL _I2C_StopBit
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (93)
; if (I2C_RxTx_Data_L == DEFAULT_ID)
MOV A,_I2C_RxTx_Data_L
XOR A,#0x82
JBC _STTS,2,_00124_DS_ET21x130_I2C_Check_SensorID
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (94)
; break;
RET
; exit point of _Check_SensorID
;***
; pBlock Stats: dbName = C
;***
;entry: _GetI2CReg: ;Function start
; 1 exit point
;Using Bank: Bank0
;has an exit
;functions called:
; _Read_Register
; _Read_Register
; _Read_Register
; _Read_Register
; _Read_Register
; _Read_Register
; _Read_Register
; _Read_Register
;1 compiler assigned register :
; s0xF0
;; Starting pCode block
_GetI2CReg: ;Function start
; 1 exit point
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (51)
; M_BC(I2C_PORT, SCE); //SCE=0
BC _ET21x130_CTRL,1
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (52)
; Read_Register(0x00, 0x00);
MOV A,#0x00
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (53)
; I2CRegR0 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR0,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR0 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (54)
; Read_Register(0x00, 0x01);
MOV A,#0x01
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (55)
; I2CRegR1 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR1,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR1 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (56)
; Read_Register(0x00, 0x02);
MOV A,#0x02
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (57)
; I2CRegR2 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR2,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR2 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (58)
; Read_Register(0x00, 0x03);
MOV A,#0x03
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (59)
; I2CRegR3 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR3,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR3 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (60)
; Read_Register(0x00, 0x05);
MOV A,#0x05
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (61)
; I2CRegR5 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR5,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR5 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (62)
; Read_Register(0x00, 0x06);
MOV A,#0x06
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (63)
; I2CRegR6 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR6,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR6 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (64)
; Read_Register(0x00, 0x07);
MOV A,#0x07
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (65)
; I2CRegR7 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR7,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR7 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (66)
; Read_Register(0x00, 0x08);
MOV A,#0x08
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (67)
; I2CRegR8 = I2C_RxTx_Data;
MOV A,_I2C_RxTx_Data
MOV _I2CRegR8,A
MOV A,_I2C_RxTx_Data + 1
MOV _I2CRegR8 + 1,A
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (68)
; M_BS(I2C_PORT, SCE); //SCE=1
BS _ET21x130_CTRL,1
RET
; exit point of _GetI2CReg
;***
; pBlock Stats: dbName = C
;***
;entry: _SetI2CReg: ;Function start
; 1 exit point
;Using Bank: Bank0
;has an exit
;functions called:
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Read_Register
;3 compiler assigned registers:
; s0xF2
; s0xF1
; s0xF0
;; Starting pCode block
_SetI2CReg: ;Function start
; 1 exit point
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (33)
; M_BC(I2C_PORT, SCE); //SCE=0
BC _ET21x130_CTRL,1
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (34)
; Write_Register(0x00, 0x00, I2CRegR0_H, I2CRegR0_L);
MOV A,_I2CRegR0_L
MOV s0xF2,A
MOV A,_I2CRegR0_H
MOV s0xF1,A
MOV A,#0x00
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (35)
; Write_Register(0x00, 0x01, I2CRegR1_H, I2CRegR1_L);
MOV A,_I2CRegR1_L
MOV s0xF2,A
MOV A,_I2CRegR1_H
MOV s0xF1,A
MOV A,#0x01
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (36)
; Write_Register(0x00, 0x02, I2CRegR2_H, I2CRegR2_L);
MOV A,_I2CRegR2_L
MOV s0xF2,A
MOV A,_I2CRegR2_H
MOV s0xF1,A
MOV A,#0x02
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (37)
; Write_Register(0x00, 0x03, I2CRegR3_H, I2CRegR3_L);
MOV A,_I2CRegR3_L
MOV s0xF2,A
MOV A,_I2CRegR3_H
MOV s0xF1,A
MOV A,#0x03
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (39)
; Write_Register(0x00, 0x05, I2CRegR5_H, I2CRegR5_L);
MOV A,_I2CRegR5_L
MOV s0xF2,A
MOV A,_I2CRegR5_H
MOV s0xF1,A
MOV A,#0x05
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (40)
; Write_Register(0x00, 0x06, I2CRegR6_H, I2CRegR6_L);
MOV A,_I2CRegR6_L
MOV s0xF2,A
MOV A,_I2CRegR6_H
MOV s0xF1,A
MOV A,#0x06
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (41)
; Write_Register(0x00, 0x07, I2CRegR7_H, I2CRegR7_L);
MOV A,_I2CRegR7_L
MOV s0xF2,A
MOV A,_I2CRegR7_H
MOV s0xF1,A
MOV A,#0x07
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (42)
; Write_Register(0x00, 0x08, I2CRegR8_H, I2CRegR8_L);
MOV A,_I2CRegR8_L
MOV s0xF2,A
MOV A,_I2CRegR8_H
MOV s0xF1,A
MOV A,#0x08
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (43)
; Read_Register(0x00, 0x06); //007E
MOV A,#0x06
MOV s0xF0,A
MOV A,#0x00
CALL _Read_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (44)
; M_BS(I2C_PORT, SCE); //SCE=1
BS _ET21x130_CTRL,1
RET
; exit point of _SetI2CReg
;***
; pBlock Stats: dbName = C
;***
;entry: _Setup_ET21x130: ;Function start
; 1 exit point
;Using Bank: Bank0
;has an exit
;functions called:
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
; _Write_Register
;3 compiler assigned registers:
; s0xF2
; s0xF1
; s0xF0
;; Starting pCode block
_Setup_ET21x130: ;Function start
; 1 exit point
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (16)
; M_BC(I2C_PORT, SCE); //SCE=0
BC _ET21x130_CTRL,1
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (17)
; Write_Register(0x00, 0x00, R0_H_VALUE, R0_L_VALUE);
MOV A,#0x00
MOV s0xF2,A
MOV A,#0x28
MOV s0xF1,A
MOV A,#0x00
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (18)
; Write_Register(0x00, 0x01, AE_ADD_EP_TIME, 0x77);
MOV A,#0x77
MOV s0xF2,A
MOV A,#0x0a
MOV s0xF1,A
MOV A,#0x01
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (19)
; Write_Register(0x00, 0x02, AE_UPPER_BOUND, AE_LOWER_BOUND);
MOV A,#0x40
MOV s0xF2,A
MOV A,#0x60
MOV s0xF1,A
MOV A,#0x02
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (20)
; Write_Register(0x00, 0x03, 0x00, OP_GAIN);
MOV A,#0x09
MOV s0xF2,A
MOV A,#0x00
MOV s0xF1,A
MOV A,#0x03
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (21)
; Write_Register(0x00, 0x05, EP_PIXEL_H, EP_PIXEL_L);
MOV A,#0xc8
MOV s0xF2,A
MOV A,#0x01
MOV s0xF1,A
MOV A,#0x05
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (22)
; Write_Register(0x00, 0x06, 0x00, EP_TIME);
MOV A,#0x7e
MOV s0xF2,A
MOV A,#0x00
MOV s0xF1,A
MOV A,#0x06
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (23)
; Write_Register(0x00, 0x07, R7_H_VALUE, R7_L_VALUE);
MOV A,#0x3f
MOV s0xF2,A
MOV A,#0x0b
MOV s0xF1,A
MOV A,#0x07
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (24)
; Write_Register(0x00, 0x08, OB_ENABLE, R8_L_VALUE);
MOV A,#0x40
MOV s0xF2,A
MOV A,#0x01
MOV s0xF1,A
MOV A,#0x08
MOV s0xF0,A
MOV A,#0x00
CALL _Write_Register
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (26)
; M_BS(I2C_PORT, SCE); //SCE=1
BS _ET21x130_CTRL,1
RET
; exit point of _Setup_ET21x130
;***
; pBlock Stats: dbName = C
;***
;entry: _Reset_ET21x130: ;Function start
; 1 exit point
;Using Bank: Bank0
;has an exit
;functions called:
; _DelayMs
;; Starting pCode block
_Reset_ET21x130: ;Function start
; 1 exit point
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (7)
; M_BC(ET21x130_CTRL, RESET);//RESET位置0
BC _ET21x130_CTRL,0
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (8)
; DelayMs(100);
MOV A,#0x64
CALL _DelayMs
;#CSRC F:\左开中\ETOM\ET21X130D摄像头演示\C\ET21x130_I2C.c (9)
; M_BS(ET21x130_CTRL, RESET);//RESET位置1
BS _ET21x130_CTRL,0
RET
; exit point of _Reset_ET21x130
; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -