; ====================== I2C2scsn.asm ================== ; ; I2C master test programs ; -- last modified: 11:30 / 17-Nov-2005 / V.Angelov ; ; ====================================================== ; set the traceon for easier debugging, this makes the code longer ;#def traceon = 1 ; DEFINITIONS, USED IN THE PROGRAM CODE: ; TCK is bit 0, TMS is bit 1, TDI/O is bit 2, TMS used as SDA #def msk_ssda = b010; -- mask for setting SDA=1 #def msk_csda = b101; -- mask for clearing SDA #def pos_sdai = -2; -- data input, TDO #def msk_sscl = b001; -- mask for setting SCL=1 #def msk_cscl = b110; -- mask for clearing SCL #def ioaddr = r14 ; contains the autoincrementing address of I/O operations through GIO #def ramaddr = r15 ; autoincrement address for RAM-access #def return1 = r8 ; return address level 1 (top) #def return2 = r9 ; #def return3 = r10 ; #def read_buff = srv_outdata; -- DBANK | DMEM | IMEM3 #def write_buff = srv_indata; -- DBANK | DMEM | IMEM3 #def timeout = 50; -- times the timedelay, was 1 #def timedelay = 200; -- 40 for 1 us, 18 is the lower limit #def deb_reg = r13; #def dev_addr = r0; #def start_addr = r1; #def nbytes = r2; #def i2data = r3; #def wrk = r4; #def ibit = r5; #def wrk1cs = r6; -- used in clear/set routines #def wrk2cs = r7; #def timeoutcnt = r11; -- time out counter #inc "I2C2scsn.asm" #inc "I2Clib.asm"