📄 m16i2crw24c02.lis
字号:
0188 .dbline -2
0188 L57:
0188 .dbline 0 ; func end
0188 0895 ret
018A .dbsym r pRdDat 16 pc
018A .dbend
018A .dbfunc e I2C_Write _I2C_Write fc
018A ; dat -> y+4
018A ; wordAdr -> R20
018A ; wrDAdr -> R22,R23
.even
018A _I2C_Write::
018A 0E940000 xcall push_gset2
018E 422F mov R20,R18
0190 B801 movw R22,R16
0192 .dbline -1
0192 .dbline 276
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 ; }
0192 .dbline 277
0192 ; }
0192 63DF xcall _I2C_Start
0194 0023 tst R16
0196 11F4 brne L64
0198 .dbline 278
0198 ; }
0198 0027 clr R16
019A 15C0 xjmp L63
019C L64:
019C .dbline 280
019C ; }
019C ; }
019C 8B01 movw R16,R22
019E 85DF xcall _I2C_SendWrDAdr_
01A0 0023 tst R16
01A2 11F4 brne L66
01A4 .dbline 281
01A4 ; }
01A4 0027 clr R16
01A6 0FC0 xjmp L63
01A8 L66:
01A8 .dbline 283
01A8 ; }
01A8 ; }
01A8 042F mov R16,R20
01AA C1DF xcall _I2C_SendDat
01AC 0023 tst R16
01AE 11F4 brne L68
01B0 .dbline 284
01B0 ; }
01B0 0027 clr R16
01B2 09C0 xjmp L63
01B4 L68:
01B4 .dbline 286
01B4 ; }
01B4 ; }
01B4 0C81 ldd R16,y+4
01B6 BBDF xcall _I2C_SendDat
01B8 0023 tst R16
01BA 11F4 brne L70
01BC .dbline 287
01BC ; }
01BC 0027 clr R16
01BE 03C0 xjmp L63
01C0 L70:
01C0 .dbline 289
01C0 ; }
01C0 ; }
01C0 84E9 ldi R24,148
01C2 86BF out 0x36,R24
01C4 .dbline 291
01C4 ; }
01C4 ; }
01C4 01E0 ldi R16,1
01C6 .dbline -2
01C6 L63:
01C6 0E940000 xcall pop_gset2
01CA .dbline 0 ; func end
01CA 0895 ret
01CC .dbsym l dat 4 c
01CC .dbsym r wordAdr 20 c
01CC .dbsym r wrDAdr 22 i
01CC .dbend
01CC .dbfunc e I2C_Write_ _I2C_Write_ fc
01CC ; i -> R20
01CC ; num -> R22
01CC ; pWrDat -> R10,R11
01CC ; wordAdr -> R20
01CC ; wrDAdr -> R12,R13
.even
01CC _I2C_Write_::
01CC 0E940000 xcall push_gset4
01D0 422F mov R20,R18
01D2 6801 movw R12,R16
01D4 A884 ldd R10,y+8
01D6 B984 ldd R11,y+9
01D8 6A85 ldd R22,y+10
01DA .dbline -1
01DA .dbline 305
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA ; }
01DA .dbline 308
01DA ; }
01DA ; }
01DA ; }
01DA 3FDF xcall _I2C_Start
01DC 0023 tst R16
01DE 11F4 brne L73
01E0 .dbline 309
01E0 ; }
01E0 0027 clr R16
01E2 1EC0 xjmp L72
01E4 L73:
01E4 .dbline 311
01E4 ; }
01E4 ; }
01E4 8601 movw R16,R12
01E6 61DF xcall _I2C_SendWrDAdr_
01E8 0023 tst R16
01EA 11F4 brne L75
01EC .dbline 312
01EC ; }
01EC 0027 clr R16
01EE 18C0 xjmp L72
01F0 L75:
01F0 .dbline 314
01F0 ; }
01F0 ; }
01F0 042F mov R16,R20
01F2 9DDF xcall _I2C_SendDat
01F4 0023 tst R16
01F6 11F4 brne L77
01F8 .dbline 315
01F8 ; }
01F8 0027 clr R16
01FA 12C0 xjmp L72
01FC L77:
01FC .dbline 316
01FC ; }
01FC 4427 clr R20
01FE 0BC0 xjmp L82
0200 L79:
0200 .dbline 317
0200 ; }
0200 .dbline 318
0200 ; }
0200 E42F mov R30,R20
0202 FF27 clr R31
0204 EA0D add R30,R10
0206 FB1D adc R31,R11
0208 0081 ldd R16,z+0
020A 91DF xcall _I2C_SendDat
020C 0023 tst R16
020E 11F4 brne L83
0210 .dbline 319
0210 ; }
0210 0027 clr R16
0212 06C0 xjmp L72
0214 L83:
0214 .dbline 320
0214 L80:
0214 .dbline 316
0214 4395 inc R20
0216 L82:
0216 .dbline 316
0216 4617 cp R20,R22
0218 98F3 brlo L79
021A .dbline 322
021A ; }
021A ; }
021A ; }
021A 84E9 ldi R24,148
021C 86BF out 0x36,R24
021E .dbline 324
021E ; }
021E ; }
021E 01E0 ldi R16,1
0220 .dbline -2
0220 L72:
0220 0E940000 xcall pop_gset4
0224 .dbline 0 ; func end
0224 0895 ret
0226 .dbsym r i 20 c
0226 .dbsym r num 22 c
0226 .dbsym r pWrDat 10 pc
0226 .dbsym r wordAdr 20 c
0226 .dbsym r wrDAdr 12 i
0226 .dbend
0226 .dbfunc e I2C_Read _I2C_Read fc
0226 ; pRdDat -> y+6
0226 ; rdDAdr -> y+4
0226 ; wordAdr -> R20
0226 ; wrDAdr -> R22,R23
.even
0226 _I2C_Read::
0226 0E940000 xcall push_gset2
022A 422F mov R20,R18
022C B801 movw R22,R16
022E .dbline -1
022E .dbline 339
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E ; }
022E .dbline 340
022E ; }
022E 15DF xcall _I2C_Start
0230 0023 tst R16
0232 11F4 brne L86
0234 .dbline 341
0234 ; }
0234 0027 clr R16
0236 21C0 xjmp L85
0238 L86:
0238 .dbline 343
0238 ; }
0238 ; }
0238 8B01 movw R16,R22
023A 37DF xcall _I2C_SendWrDAdr_
023C 0023 tst R16
023E 11F4 brne L88
0240 .dbline 344
0240 ; }
0240 0027 clr R16
0242 1BC0 xjmp L85
0244 L88:
0244 .dbline 346
0244 ; }
0244 ; }
0244 042F mov R16,R20
0246 73DF xcall _I2C_SendDat
0248 0023 tst R16
024A 11F4 brne L90
024C .dbline 347
024C ; }
024C 0027 clr R16
024E 15C0 xjmp L85
0250 L90:
0250 .dbline 349
0250 ; }
0250 ; }
0250 11DF xcall _I2C_Restart
0252 0023 tst R16
0254 11F4 brne L92
0256 .dbline 350
0256 ; }
0256 0027 clr R16
0258 10C0 xjmp L85
025A L92:
025A .dbline 352
025A ; }
025A ; }
025A 0C81 ldd R16,y+4
025C 40DF xcall _I2C_SendRdDAdr
025E 0023 tst R16
0260 11F4 brne L94
0262 .dbline 353
0262 ; }
0262 0027 clr R16
0264 0AC0 xjmp L85
0266 L94:
0266 .dbline 355
0266 ; }
0266 ; }
0266 0E81 ldd R16,y+6
0268 1F81 ldd R17,y+7
026A 6FDF xcall _I2C_RcvNAckDat
026C 0023 tst R16
026E 11F4 brne L96
0270 .dbline 356
0270 ; }
0270 0027 clr R16
0272 03C0 xjmp L85
0274 L96:
0274 .dbline 358
0274 ; }
0274 ; }
0274 84E9 ldi R24,148
0276 86BF out 0x36,R24
0278 .dbline 360
0278 ; }
0278 ; }
0278 01E0 ldi R16,1
027A .dbline -2
027A L85:
027A 0E940000 xcall pop_gset2
027E .dbline 0 ; func end
027E 0895 ret
0280 .dbsym l pRdDat 6 pc
0280 .dbsym l rdDAdr 4 c
0280 .dbsym r wordAdr 20 c
0280 .dbsym r wrDAdr 22 i
0280 .dbend
0280 .dbfunc e I2C_Read_ _I2C_Read_ fc
0280 ; i -> R20
0280 ; num -> R22
0280 ; pRdDat -> R10,R11
0280 ; rdDAdr -> y+8
0280 ; wordAdr -> R20
0280 ; wrDAdr -> R12,R13
.even
0280 _I2C_Read_::
0280 0E940000 xcall push_gset4
0284 422F mov R20,R18
0286 6801 movw R12,R16
0288 AA84 ldd R10,y+10
028A BB84 ldd R11,y+11
028C 6C85 ldd R22,y+12
028E .dbline -1
028E .dbline 376
028E ; }
028E ; }
028E ; }
028E ; }
028E ; }
028E ; }
028E ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -