📄 hd_support.lis
字号:
0214 4990 ld R4,y+
0216 3990 ld R3,y+
0218 2990 ld R2,y+
021A 1990 ld R1,y+
021C 0990 ld R0,y+
021E 1895 reti
0220 .dbsym l cTransmitByte 0 c
0220 .dbend
0220 .dbfunc s SPI_INIT _SPI_INIT fV
.even
0220 _SPI_INIT:
0220 .dbline -1
0220 .dbline 236
0220 ; }
0220 ;
0220 ; /***********************************************************
0220 ; * 函数说明: SPI初始化函数 *
0220 ; * 输入: 无 *
0220 ; * 输出: 无 *
0220 ; * 调用函数: 无 *
0220 ; ***********************************************************/
0220 ; static void SPI_INIT(void)
0220 ; {
0220 .dbline 237
0220 ; SPCR = 0xEE; //setup SPI Slave Model
0220 8EEE ldi R24,238
0222 8CBD out 0x2c,R24
0224 .dbline 238
0224 ; SPSR = 0x00; //setup SPI
0224 2224 clr R2
0226 2DBC out 0x2d,R2
0228 .dbline -2
0228 L10:
0228 .dbline 0 ; func end
0228 0895 ret
022A .dbend
022A .dbfunc e SPI_STC_ISR _SPI_STC_ISR fV
022A ; chTempData0 -> R16
.even
022A _SPI_STC_ISR::
022A 2A92 st -y,R2
022C 0A93 st -y,R16
022E 8A93 st -y,R24
0230 9A93 st -y,R25
0232 EA93 st -y,R30
0234 FA93 st -y,R31
0236 2FB6 in R2,0x3f
0238 2A92 st -y,R2
023A .dbline -1
023A .dbline 248
023A ; }
023A ;
023A ; /***********************************************************
023A ; * 函数说明: SPI通讯完成中断处理函数 *
023A ; * 输入: 无 *
023A ; * 输出: 无 *
023A ; * 调用函数: INSERT_SPI_STC_ISR_CODE *
023A ; ***********************************************************/
023A ; void SPI_STC_ISR(void)
023A ; {
023A .dbline 249
023A ; INSERT_SPI_STC_ISR_CODE
023A .dbline 249
023A 0EB5 in R16,0x2e
023C .dbline 249
023C 80E0 ldi R24,<_g_chDataBuffer
023E 90E0 ldi R25,>_g_chDataBuffer
0240 E0910000 lds R30,_g_chDataCounter
0244 FF27 clr R31
0246 E80F add R30,R24
0248 F91F adc R31,R25
024A 0083 std z+0,R16
024C .dbline 249
024C 20900000 lds R2,_g_chDataCounter
0250 2220 tst R2
0252 41F0 breq L12
0254 X1:
0254 822D mov R24,R2
0256 8031 cpi R24,16
0258 28F4 brsh L12
025A X2:
025A .dbline 249
025A .dbline 249
025A 20900000 lds R2,_g_chXOR
025E 2026 eor R2,R16
0260 20920000 sts _g_chXOR,R2
0264 .dbline 249
0264 L12:
0264 .dbline 249
0264 80910000 lds R24,_g_chDataCounter
0268 8F5F subi R24,255 ; addi 1
026A 80930000 sts _g_chDataCounter,R24
026E .dbline 249
026E .dbline -2
026E L11:
026E .dbline 0 ; func end
026E 2990 ld R2,y+
0270 2FBE out 0x3f,R2
0272 F991 ld R31,y+
0274 E991 ld R30,y+
0276 9991 ld R25,y+
0278 8991 ld R24,y+
027A 0991 ld R16,y+
027C 2990 ld R2,y+
027E 1895 reti
0280 .dbsym r chTempData0 16 c
0280 .dbend
0280 .dbfunc s PCINT_INIT _PCINT_INIT fV
.even
0280 _PCINT_INIT:
0280 .dbline -1
0280 .dbline 259
0280 ; }
0280 ;
0280 ; /***********************************************************
0280 ; * 函数说明: 引脚电平变化中断处理程序 *
0280 ; * 输入: 无 *
0280 ; * 输出: 无 *
0280 ; * 调用函数: 无 *
0280 ; ***********************************************************/
0280 ; static void PCINT_INIT(void)
0280 ; {
0280 .dbline 260
0280 ; PCICR |= BIT(PCIE0)|BIT(PCIE1);
0280 80916800 lds R24,104
0284 8360 ori R24,3
0286 80936800 sts 104,R24
028A .dbline 261
028A ; PCMSK0 = BIT(PCINT2);
028A 84E0 ldi R24,4
028C 80936B00 sts 107,R24
0290 .dbline 262
0290 ; PCMSK1 = BIT(PCINT8);
0290 81E0 ldi R24,1
0292 80936C00 sts 108,R24
0296 .dbline -2
0296 L14:
0296 .dbline 0 ; func end
0296 0895 ret
0298 .dbend
0298 .dbfunc e PCINT0_ISR _PCINT0_ISR fV
.even
0298 _PCINT0_ISR::
0298 0A92 st -y,R0
029A 1A92 st -y,R1
029C 2A92 st -y,R2
029E 3A92 st -y,R3
02A0 4A92 st -y,R4
02A2 5A92 st -y,R5
02A4 8A93 st -y,R24
02A6 EA93 st -y,R30
02A8 FA93 st -y,R31
02AA 0FB6 in R0,0x3f
02AC 0A92 st -y,R0
02AE .dbline -1
02AE .dbline 272
02AE ; }
02AE ;
02AE ; /***********************************************************
02AE ; * 函数说明: 引脚电平变化中断处理函数 *
02AE ; * 输入: 无 *
02AE ; * 输出: 无 *
02AE ; * 调用函数: INSERT_PCINT0_ISR_CODE *
02AE ; ***********************************************************/
02AE ; void PCINT0_ISR(void)
02AE ; {
02AE .dbline 273
02AE ; INSERT_PCINT0_ISR_CODE
02AE 7894 sei
02B0 .dbline 273
02B0 .dbline 273
02B0 1A9B sbis 0x3,2
02B2 35C0 rjmp L16
02B4 X3:
02B4 .dbline 273
02B4 .dbline 273
02B4 20900000 lds R2,_g_chXOR
02B8 2220 tst R2
02BA 69F5 brne L18
02BC X4:
02BC .dbline 273
02BC .dbline 273
02BC E0E0 ldi R30,<_g_chDataBuffer+3
02BE F0E0 ldi R31,>_g_chDataBuffer+3
02C0 2080 ldd R2,z+0
02C2 3180 ldd R3,z+1
02C4 4280 ldd R4,z+2
02C6 5380 ldd R5,z+3
02C8 30920100 sts _g_fAbsoluteX+1,R3
02CC 20920000 sts _g_fAbsoluteX,R2
02D0 50920300 sts _g_fAbsoluteX+2+1,R5
02D4 40920200 sts _g_fAbsoluteX+2,R4
02D8 .dbline 273
02D8 E0E0 ldi R30,<_g_chDataBuffer+7
02DA F0E0 ldi R31,>_g_chDataBuffer+7
02DC 2080 ldd R2,z+0
02DE 3180 ldd R3,z+1
02E0 4280 ldd R4,z+2
02E2 5380 ldd R5,z+3
02E4 30920100 sts _g_fAbsoluteY+1,R3
02E8 20920000 sts _g_fAbsoluteY,R2
02EC 50920300 sts _g_fAbsoluteY+2+1,R5
02F0 40920200 sts _g_fAbsoluteY+2,R4
02F4 .dbline 273
02F4 E0E0 ldi R30,<_g_chDataBuffer+11
02F6 F0E0 ldi R31,>_g_chDataBuffer+11
02F8 2080 ldd R2,z+0
02FA 3180 ldd R3,z+1
02FC 4280 ldd R4,z+2
02FE 5380 ldd R5,z+3
0300 30920100 sts _g_fAbsoluteAngle+1,R3
0304 20920000 sts _g_fAbsoluteAngle,R2
0308 50920300 sts _g_fAbsoluteAngle+2+1,R5
030C 40920200 sts _g_fAbsoluteAngle+2,R4
0310 .dbline 273
0310 81E0 ldi R24,1
0312 80930500 sts _ProcPCB+3+2,R24
0316 .dbline 273
0316 L18:
0316 .dbline 273
0316 2224 clr R2
0318 20920000 sts _g_chDataCounter,R2
031C .dbline 273
031C 03C0 rjmp L17
031E L16:
031E .dbline 273
031E .dbline 273
031E 2224 clr R2
0320 20920000 sts _g_chXOR,R2
0324 .dbline 273
0324 L17:
0324 .dbline 273
0324 .dbline -2
0324 L15:
0324 .dbline 0 ; func end
0324 0990 ld R0,y+
0326 0FBE out 0x3f,R0
0328 F991 ld R31,y+
032A E991 ld R30,y+
032C 8991 ld R24,y+
032E 5990 ld R5,y+
0330 4990 ld R4,y+
0332 3990 ld R3,y+
0334 2990 ld R2,y+
0336 1990 ld R1,y+
0338 0990 ld R0,y+
033A 1895 reti
033C .dbend
033C .dbfunc e PCINT1_ISR _PCINT1_ISR fV
.even
033C _PCINT1_ISR::
033C 1A92 st -y,R1
033E 8A93 st -y,R24
0340 9A93 st -y,R25
0342 1FB6 in R1,0x3f
0344 1A92 st -y,R1
0346 .dbline -1
0346 .dbline 283
0346 ; }
0346 ;
0346 ; /***********************************************************
0346 ; * 函数说明: 引脚电平变化中断处理函数 *
0346 ; * 输入: 无 *
0346 ; * 输出: 无 *
0346 ; * 调用函数: INSERT_PCINT1_ISR_CODE *
0346 ; ***********************************************************/
0346 ; void PCINT1_ISR(void)
0346 ; {
0346 .dbline 284
0346 ; INSERT_PCINT1_ISR_CODE
0346 7894 sei
0348 .dbline 284
0348 .dbline 284
0348 86B1 in R24,0x6
034A 8170 andi R24,1
034C 96B1 in R25,0x6
034E 9695 lsr R25
0350 9170 andi R25,1
0352 9817 cp R25,R24
0354 51F4 brne L26
0356 X5:
0356 .dbline 284
0356 .dbline 284
0356 80910000 lds R24,_g_wCounter
035A 90910100 lds R25,_g_wCounter+1
035E 0196 adiw R24,1
0360 90930100 sts _g_wCounter+1,R25
0364 80930000 sts _g_wCounter,R24
0368 .dbline 284
0368 09C0 rjmp L27
036A L26:
036A .dbline 284
036A .dbline 284
036A 80910000 lds R24,_g_wCounter
036E 90910100 lds R25,_g_wCounter+1
0372 0197 sbiw R24,1
0374 90930100 sts _g_wCounter+1,R25
0378 80930000 sts _g_wCounter,R24
037C .dbline 284
037C L27:
037C .dbline 284
037C 80910000 lds R24,_g_wCounter
0380 90910100 lds R25,_g_wCounter+1
0384 9370 andi R25,3
0386 90930100 sts _g_wCounter+1,R25
038A 80930000 sts _g_wCounter,R24
038E .dbline 284
038E .dbline -2
038E L25:
038E .dbline 0 ; func end
038E 1990 ld R1,y+
0390 1FBE out 0x3f,R1
0392 9991 ld R25,y+
0394 8991 ld R24,y+
0396 1990 ld R1,y+
0398 1895 reti
039A .dbend
039A ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -