📄 busio.src
字号:
; slv += 2;
; SOURCE LINE # 1101
INC slv?1290
INC slv?1290
; }
; SOURCE LINE # 1102
; break;
; SOURCE LINE # 1103
SJMP ?C0108
; }
; SOURCE LINE # 1104
; }
; SOURCE LINE # 1105
?C0109:
INC i?1291
MOV A,i?1291
CLR C
SUBB A,#08H
JC ?C0107
?C0108:
; SendI2CStop();
; SOURCE LINE # 1106
LCALL SendI2CStop
; miscDelay(15);
; SOURCE LINE # 1107
MOV R7,#0FH
MOV R6,#00H
LCALL _miscDelay
; }
; SOURCE LINE # 1108
SJMP ?C0102
;
; goto endi2c;
; SOURCE LINE # 1110
;
; buserror:
; SOURCE LINE # 1112
; #if DEBUGMSG
; printf("BUS error (eepDataOut) !!!!\n");
; #endif
;
; endi2c:
; SOURCE LINE # 1117
?_eepDataOut?endi2c:
; SendI2CStop();
; SOURCE LINE # 1118
LCALL SendI2CStop
; miscDelay(15);
; SOURCE LINE # 1119
MOV R7,#0FH
MOV R6,#00H
LCALL _miscDelay
;
; WPPin = 1;
; SOURCE LINE # 1121
SETB WPPin
;
; #if DISABLEINT0
; /* restove interrupt 0 flag */
; EX0 = IntFlag;
; SOURCE LINE # 1125
MOV C,IntFlag?1292
MOV EX0,C
; #endif
;
;
;
; #else //fast out
;
;
;
; int data byteCnt;
; unsigned char slv;
;
;
; #if DISABLEINT0
; bit IntFlag;
;
; /* disable interrupt 0 */
; IntFlag = EX0;
; EX0 = 0;
; #endif
;
; WPPin = 0;
;
; if(index < 256)
; slv = SLAVEADDR_EEPW0;
; else
; if(index < 512) {
; slv = SLAVEADDR_EEPW1;
; index -= 256;
; } else
; if(index < 768) {
; slv = SLAVEADDR_EEPW2;
; index -= 512;
; } else {
; slv = SLAVEADDR_EEPW3;
; index -= 768;
; }
;
; for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; if (index == 256 )
; {
; index = 0;
; slv += 2;
; }
; GoI2CMaster(slv);
; if(NoAck | BusFault)
; goto buserror;
; SendI2CByte((unsigned char) index++);
; if(NoAck)
; goto buserror;
; SendI2CByte(*s++);
; // miscDelay(20);
; if(NoAck) goto buserror;
; SendI2CStop();
; miscDelay(15);
; }
; goto endi2c;
;
; buserror:
; #if DEBUGMSG
; printf("BUS error (eepDataOut) !!!!\n");
; #endif
;
; endi2c:
; SendI2CStop();
;
; WPPin = 1;
;
; #if DISABLEINT0
; /* restove interrupt 0 flag */
; EX0 = IntFlag;
; #endif
;
; #endif //fast out
; }
; SOURCE LINE # 1199
RET
; END OF _eepDataOut
;
; #if 0
; /*********************************************
; * Send bytes of data to standard device *
; **********************************************/
; void eepDataInit(unsigned int index, unsigned char *s)
; {
; int data byteCnt;
; unsigned char slv, i;
;
; if(index == 256) {
; slv = SLAVEADDR_EEPW1;
; } else
; if(index == 512) {
; slv = SLAVEADDR_EEPW2;
; } else {
; slv = SLAVEADDR_EEPW3;
; }
; index = 0;
;
; for(i = 0; i < 16/EEPBLOCKSIZE*16; i++) {
; GoI2CMaster(slv);
; if(NoAck | BusFault)
; goto buserror;
; SendI2CByte((unsigned char)index);
; if(NoAck)
; goto buserror;
; for(byteCnt = EEPBLOCKSIZE; byteCnt > 0; byteCnt--) {
; SendI2CByte(*s++);
; }
; SendI2CStop();
; miscDelay(30);
; index += 8;
; }
; return;
;
; buserror:
; #if DEBUGMSG
; printf("BUS error during initializing EEPROM !!!!\n");
; #endif
; SendI2CStop();
; }
;
; void eepBlkDataOut(unsigned int index, unsigned char *s, int cnt)
; {
; int data byteCnt;
; unsigned char slv;
;
; if(index < 256)
; slv = SLAVEADDR_EEPW0;
; else
; if(index < 512) {
; slv = SLAVEADDR_EEPW1;
; index -= 256;
; } else
; if(index < 768) {
; slv = SLAVEADDR_EEPW2;
; index -= 512;
; } else {
; slv = SLAVEADDR_EEPW3;
; index -= 768;
; }
;
; loop:
; if(cnt >= 8) {
; GoI2CMaster(slv);
; if(NoAck | BusFault)
; goto buserror;
; SendI2CByte((unsigned char) index);
; if(NoAck)
; goto buserror;
; for(byteCnt = 8; byteCnt > 0; byteCnt--)
; SendI2CByte1(*s++);
; SendI2CStop();
; miscDelay(20);
; index += 8;
; cnt -= 8;
; goto loop;
; }
;
; if(cnt > 0) {
; GoI2CMaster(slv);
; if(NoAck | BusFault)
; goto buserror;
; SendI2CByte((unsigned char) index);
; if(NoAck)
; goto buserror;
; for(byteCnt = cnt; byteCnt > 0; byteCnt--)
; SendI2CByte1(*s++);
; SendI2CStop();
; }
; return;
;
; buserror:
; printf("BUS error !!\n");
; SendI2CStop();
; }
; #endif
;
; #if (USE_EXTERNALOSD | DEBUGTOOL)
; /*********************************************
; * Read one byte of data from MC141544 (OSD) *
; **********************************************/
; unsigned char MCByteIn(unsigned char row, unsigned char coln)
; {
; unsigned char val;
;
; /* I2C Start and send WRITE slave address */
; GoI2CMaster(SLAVEADDR_MCW);
; if(NoAck | BusFault) goto buserror;
;
; /* Send row */
; SendI2CByte(row);
; if(NoAck) goto buserror;
;
; /* Send coln */
; SendI2CByte(coln);
; if(NoAck) goto buserror;
;
; /* I2C Start and send READ slave address */
; GoI2CMaster(SLAVEADDR_MCW | 0x01);
; if(NoAck) goto buserror;
;
; /* data transmit */
; val = RcvI2CByte(1);
;
; buserror:
; /* Finish transmition */
; SendI2CStop();
;
; return(val);
; }
;
; /*********************************************
; * Write one byte of data to MC141544 (OSD) *
; **********************************************/
; void MCByteOut(unsigned char row, unsigned char coln, unsigned char val)
; {
; /* I2C Start and send WRITE slave address */
; GoI2CMaster(SLAVEADDR_MCW);
; if(NoAck | BusFault) goto buserror;
;
; /* Send row */
; SendI2CByte(row);
; if(NoAck) goto buserror;
;
; /* Send coln */
; SendI2CByte(coln);
; if(NoAck) goto buserror;
;
; /* data transmit */
; SendI2CByte(val);
;
; buserror:
; /* Finish transmition */
; SendI2CStop();
; }
;
; /*********************************************
; * Read bytes of data from MC141544 (OSD) *
; **********************************************/
; void MCDataIn(unsigned char row, unsigned char coln, unsigned char *s, int cnt)
; {
; unsigned int data byteCnt;
;
; /* I2C Start and send WRITE slave address */
; GoI2CMaster(SLAVEADDR_MCW);
; if(NoAck | BusFault) goto buserror;
;
; /* Send row */
; SendI2CByte(row);
; if(NoAck) goto buserror;
;
; /* Send coln */
; SendI2CByte(coln);
; if(NoAck) goto buserror;
;
; /* I2C Start and send READ slave address */
; GoI2CMaster(SLAVEADDR_MCW | 0x01);
; if(NoAck) goto buserror;
;
; /* data transmit */
; for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; *s++ = RcvI2CByte(byteCnt);
; }
;
; buserror:
; /* Finish transmition */
; SendI2CStop();
; }
; #endif
;
; #if USE_EXTERNALOSD
; /*********************************************
; * Write bytes of data to MC141544 (OSD) *
; **********************************************/
; void MCDataOut(unsigned char row, unsigned char coln, unsigned char *s, int cnt)
; {
; int data byteCnt;
;
; /* I2C Start and send WRITE slave address */
; GoI2CMaster(SLAVEADDR_MCW);
; if(NoAck | BusFault) goto buserror;
;
; /* Send row */
; SendI2CByte(row);
; if(NoAck) goto buserror;
;
; /* Send coln */
; SendI2CByte(coln);
; if(NoAck) goto buserror;
;
; /* data transmit */
; for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; SendI2CByte(*s++);
; if(NoAck) goto buserror;
; }
;
; buserror:
; /* Finish transmition */
; SendI2CStop();
; }
;
; /*********************************************
; * Write same byte of data to MC141544 (OSD) *
; **********************************************/
; void MCLoopOut(unsigned char row, unsigned char coln, unsigned char val, int cnt)
; {
; int data byteCnt;
;
; /* I2C Start and send WRITE slave address */
; GoI2CMaster(SLAVEADDR_MCW);
; if(NoAck | BusFault) goto buserror;
;
; /* Send row */
; SendI2CByte(row);
; if(NoAck) goto buserror;
;
; /* Send coln */
; SendI2CByte(coln);
; if(NoAck) goto buserror;
;
; /* data transmit */
; for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; SendI2CByte(val);
; if(NoAck) goto buserror;
; }
;
; buserror:
; /* Finish transmition */
; SendI2CStop();
; }
; #endif
;
;
; #if SRC_TV
; /*********************************************
; * Send a byte to standard I2C device *
; **********************************************/
; void I2cByteOut(unsigned char i2caddr, unsigned char index, unsigned char val)
; {
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr);
; if(NoAck | BusFault) goto buserror;
;
; /* Send index */
; SendI2CByte(index);
; if(NoAck) goto buserror;
;
; SendI2CByte(val);
; if(NoAck) goto buserror;
;
; buserror:
; SendI2CStop();
; }
; #endif
;
; #if 0
; /*********************************************
; * Send bytes of data to standard I2C device *
; **********************************************/
; void I2cDataOut(unsigned char i2caddr, unsigned char *s, char cnt)
; {
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr);
; if(NoAck | BusFault) goto buserror;
;
; /* Send index */
; SendI2CByte(*s++);
; if(NoAck) goto buserror;
;
; /* data transmit */
; while (cnt-- > 0) {
; SendI2CByte(*s++);
; if(NoAck) goto buserror;
; }
;
; buserror:
; SendI2CStop();
; }
; #endif
;
; #if (SRC_TV && USE_SAA7114)
; /**********************************************
; * Send Table data to I2C device *
; ***********************************************/
; void I2cDataTableOut(unsigned char i2caddr, unsigned char *s)
; {
; unsigned char cnt;
;
; while ((cnt = *s++) != -1) {
; I2cDataOut(i2caddr, s, cnt);
; s += cnt;
; }
; }
; #endif //USE_SAA7114
;
; #if SRC_TV
; /**********************************************
; * Receive a byte from Standard device *
; ***********************************************/
; unsigned char I2cByteIn(unsigned char i2caddr, unsigned char index)
; {
; unsigned char val;
;
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr);
; if(NoAck | BusFault) goto buserror;
;
; /* Send index */
; SendI2CByte(index);
; if(NoAck) goto buserror;
;
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr | 1);
; if(NoAck) goto buserror;
;
; /* data transmit */
; val = RcvI2CByte(1);
;
; buserror:
; /* Finish trasmition */
; SendI2CStop();
;
; return val;
; }
;
; /**********************************************
; * Receive bytes of data from Standard device *
; ***********************************************/
; void I2cDataIn(unsigned char i2caddr, unsigned char *s, char cnt)
; {
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr);
; if(NoAck | BusFault) goto buserror;
;
; /* Send index */
; SendI2CByte(*s++);
; if(NoAck) goto buserror;
;
; /* I2C Start and send slave address */
; GoI2CMaster(i2caddr | 1);
; if(NoAck) goto buserror;
;
; /* data transmit */
; for(; cnt > 0; cnt--) {
; *s++ = RcvI2CByte(cnt);
; }
;
; buserror:
; /* Finish trasmition */
; SendI2CStop();
; }
; #endif
;
;
;
; #if MRT_VITESSE2
;
; #if MASCOT_V
; /*********************************************
; * Send a byte to MascotV ADC *
; **********************************************/
; void TDAByteOut(unsigned char index, unsigned char val)
RSEG ?PR?_TDAByteOut?BUSIO
USING 0
_TDAByteOut:
;---- Variable 'index?1393' assigned to Register 'R7' ----
;---- Variable 'val?1394' assigned to Register 'R5' ----
; SOURCE LINE # 1583
; {
; SOURCE LINE # 1584
; RegByteOut(index+0x12, val); //vxz
; SOURCE LINE # 1585
MOV A,R7
ADD A,#012H
MOV R7,A
LCALL _RegByteOut
; }
; SOURCE LINE # 1586
RET
; END OF _TDAByteOut
;
; /*********************************************
; * Send data table to Philips TDA8752 *
; **********************************************/
; void TDADataTableOut(unsigned char *tbl)
RSEG ?PR?_TDADataTableOut?BUSIO
USING 0
_TDADataTableOut:
;---- Variable 'tbl?1495' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 1591
; {
; SOURCE LINE # 1592
; #if MASCOT_VXZ
; RegDataOut(0x18, tbl, 4);
; SOURCE LINE # 1594
MOV R7,#018H
MOV ?_RegDataOut?BYTE+04H,#00H
MOV ?_RegDataOut?BYTE+05H,#04H
LCALL _RegDataOut
; #else
; RegDataOut(0x18, tbl+9, 5);
; #endif
; }
; SOURCE LINE # 1598
RET
; END OF _TDADataTableOut
;
; unsigned char TDAByteIn(unsigned char index)
RSEG ?PR?_TDAByteIn?BUSIO
USING 0
_TDAByteIn:
;---- Variable 'index?1596' assigned to Register 'R7' ----
; SOURCE LINE # 1600
; {
; SOURCE LINE # 1601
; return RegByteIn(index+0x12);
; SOURCE LINE # 1602
MOV A,R7
ADD A,#012H
MOV R7,A
LCALL _RegByteIn
; }
; SOURCE LINE # 1603
?C0118:
RET
; END OF _TDAByteIn
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -