📄 hd_support.lis
字号:
02BA 0A93 st -y,R16
02BC 1A93 st -y,R17
02BE 2A93 st -y,R18
02C0 3A93 st -y,R19
02C2 8A93 st -y,R24
02C4 9A93 st -y,R25
02C6 AA93 st -y,R26
02C8 BA93 st -y,R27
02CA 0FB6 in R0,0x3f
02CC 0A92 st -y,R0
02CE .dbline -1
02CE .dbline 199
02CE ; }
02CE ;
02CE ; /***********************************************************
02CE ; * 函数说明:PCINT0中断处理程序 *
02CE ; * 输入: 无 *
02CE ; * 输出: 无 *
02CE ; * 调用函数:INSERT_PCINT0_ISR_CODE *
02CE ; ***********************************************************/
02CE ; void PCINT0_ISR(void)
02CE ; {
02CE .dbline 200
02CE ; INSERT_PCINT0_ISR_CODE
02CE 7894 sei
02D0 .dbline 200
02D0 .dbline 200
02D0 83B1 in R24,0x3
02D2 8170 andi R24,1
02D4 99B1 in R25,0x9
02D6 9695 lsr R25
02D8 9695 lsr R25
02DA 9695 lsr R25
02DC 9170 andi R25,1
02DE 9817 cp R25,R24
02E0 C9F4 brne L14
02E2 X3:
02E2 .dbline 200
02E2 .dbline 200
02E2 81E0 ldi R24,1
02E4 90E0 ldi R25,0
02E6 A0E0 ldi R26,0
02E8 B0E0 ldi R27,0
02EA 40900200 lds R4,_g_lCounterR+2
02EE 50900300 lds R5,_g_lCounterR+2+1
02F2 20900000 lds R2,_g_lCounterR
02F6 30900100 lds R3,_g_lCounterR+1
02FA 280E add R2,R24
02FC 391E adc R3,R25
02FE 4A1E adc R4,R26
0300 5B1E adc R5,R27
0302 30920100 sts _g_lCounterR+1,R3
0306 20920000 sts _g_lCounterR,R2
030A 50920300 sts _g_lCounterR+2+1,R5
030E 40920200 sts _g_lCounterR+2,R4
0312 .dbline 200
0312 18C0 rjmp L15
0314 L14:
0314 .dbline 200
0314 .dbline 200
0314 81E0 ldi R24,1
0316 90E0 ldi R25,0
0318 A0E0 ldi R26,0
031A B0E0 ldi R27,0
031C 40900200 lds R4,_g_lCounterR+2
0320 50900300 lds R5,_g_lCounterR+2+1
0324 20900000 lds R2,_g_lCounterR
0328 30900100 lds R3,_g_lCounterR+1
032C 281A sub R2,R24
032E 390A sbc R3,R25
0330 4A0A sbc R4,R26
0332 5B0A sbc R5,R27
0334 30920100 sts _g_lCounterR+1,R3
0338 20920000 sts _g_lCounterR,R2
033C 50920300 sts _g_lCounterR+2+1,R5
0340 40920200 sts _g_lCounterR+2,R4
0344 .dbline 200
0344 L15:
0344 .dbline 200
0344 .dbline -2
0344 L13:
0344 .dbline 0 ; func end
0344 0990 ld R0,y+
0346 0FBE out 0x3f,R0
0348 B991 ld R27,y+
034A A991 ld R26,y+
034C 9991 ld R25,y+
034E 8991 ld R24,y+
0350 3991 ld R19,y+
0352 2991 ld R18,y+
0354 1991 ld R17,y+
0356 0991 ld R16,y+
0358 5990 ld R5,y+
035A 4990 ld R4,y+
035C 3990 ld R3,y+
035E 2990 ld R2,y+
0360 1990 ld R1,y+
0362 0990 ld R0,y+
0364 1895 reti
0366 .dbend
0366 .dbfunc s Timer0_INIT _Timer0_INIT fV
.even
0366 _Timer0_INIT:
0366 .dbline -1
0366 .dbline 210
0366 ; }
0366 ;
0366 ; /***********************************************************
0366 ; * 函数声明:定时器0初始化函数 *
0366 ; * 输入: 无 *
0366 ; * 输出: 无 *
0366 ; * 调用函数:无 *
0366 ; ***********************************************************/
0366 ; static void Timer0_INIT(void)
0366 ; {
0366 .dbline 211
0366 ; TCCR0B = 0x00; //stop
0366 2224 clr R2
0368 25BC out 0x25,R2
036A .dbline 212
036A ; TCNT0 = 0x06; //set count
036A 86E0 ldi R24,6
036C 86BD out 0x26,R24
036E .dbline 213
036E ; TCCR0A = 0x00;
036E 24BC out 0x24,R2
0370 .dbline 214
0370 ; TCCR0B = 0x03; //start timer
0370 83E0 ldi R24,3
0372 85BD out 0x25,R24
0374 .dbline -2
0374 L16:
0374 .dbline 0 ; func end
0374 0895 ret
0376 .dbend
0376 .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
.even
0376 _Timer0_OVF_ISR::
0376 0A92 st -y,R0
0378 1A92 st -y,R1
037A 2A92 st -y,R2
037C 3A92 st -y,R3
037E 4A92 st -y,R4
0380 5A92 st -y,R5
0382 6A92 st -y,R6
0384 7A92 st -y,R7
0386 8A92 st -y,R8
0388 9A92 st -y,R9
038A 0A93 st -y,R16
038C 1A93 st -y,R17
038E 2A93 st -y,R18
0390 3A93 st -y,R19
0392 8A93 st -y,R24
0394 9A93 st -y,R25
0396 AA93 st -y,R26
0398 BA93 st -y,R27
039A EA93 st -y,R30
039C FA93 st -y,R31
039E 0FB6 in R0,0x3f
03A0 0A92 st -y,R0
03A2 .dbline -1
03A2 .dbline 224
03A2 ; }
03A2 ;
03A2 ; /***********************************************************
03A2 ; * 函数声明:定时器0溢出中断处理程序 *
03A2 ; * 输入: 无 *
03A2 ; * 输出: 无 *
03A2 ; * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
03A2 ; ***********************************************************/
03A2 ; void Timer0_OVF_ISR(void)
03A2 ; {
03A2 .dbline 225
03A2 ; TCNT0 = 0x06;
03A2 86E0 ldi R24,6
03A4 86BD out 0x26,R24
03A6 .dbline 226
03A6 ; INSERT_TIMER0_OVF_ISR_CODE
03A6 7894 sei
03A8 .dbline 226
03A8 00D0 rcall _Insert_Timer0_OVF_ISR_Code
03AA .dbline -2
03AA L17:
03AA .dbline 0 ; func end
03AA 0990 ld R0,y+
03AC 0FBE out 0x3f,R0
03AE F991 ld R31,y+
03B0 E991 ld R30,y+
03B2 B991 ld R27,y+
03B4 A991 ld R26,y+
03B6 9991 ld R25,y+
03B8 8991 ld R24,y+
03BA 3991 ld R19,y+
03BC 2991 ld R18,y+
03BE 1991 ld R17,y+
03C0 0991 ld R16,y+
03C2 9990 ld R9,y+
03C4 8990 ld R8,y+
03C6 7990 ld R7,y+
03C8 6990 ld R6,y+
03CA 5990 ld R5,y+
03CC 4990 ld R4,y+
03CE 3990 ld R3,y+
03D0 2990 ld R2,y+
03D2 1990 ld R1,y+
03D4 0990 ld R0,y+
03D6 1895 reti
03D8 .dbend
03D8 .dbfunc s SPI_INIT _SPI_INIT fV
.even
03D8 _SPI_INIT:
03D8 .dbline -1
03D8 .dbline 236
03D8 ; }
03D8 ;
03D8 ; /***********************************************************
03D8 ; * 函数说明:SPI初始化函数 *
03D8 ; * 输入: 无 *
03D8 ; * 输出: 无 *
03D8 ; * 调用函数:无 *
03D8 ; ***********************************************************/
03D8 ; static void SPI_INIT(void)
03D8 ; {
03D8 .dbline 237
03D8 ; SPCR = 0xFE; //setup SPI
03D8 8EEF ldi R24,254
03DA 8CBD out 0x2c,R24
03DC .dbline 238
03DC ; SPSR = 0x00; //setup SPI
03DC 2224 clr R2
03DE 2DBC out 0x2d,R2
03E0 .dbline -2
03E0 L18:
03E0 .dbline 0 ; func end
03E0 0895 ret
03E2 .dbend
03E2 .dbfunc e SPI_STC_ISR _SPI_STC_ISR fV
.even
03E2 _SPI_STC_ISR::
03E2 2A92 st -y,R2
03E4 8A93 st -y,R24
03E6 9A93 st -y,R25
03E8 EA93 st -y,R30
03EA FA93 st -y,R31
03EC 2FB6 in R2,0x3f
03EE 2A92 st -y,R2
03F0 .dbline -1
03F0 .dbline 248
03F0 ; }
03F0 ;
03F0 ; /***********************************************************
03F0 ; * 函数说明:SPI发送完成中断 *
03F0 ; * 输入: 无 *
03F0 ; * 输出: 无 *
03F0 ; * 调用函数:INSERT_SPI_STC_ISR_CODE *
03F0 ; ***********************************************************/
03F0 ; void SPI_STC_ISR(void)
03F0 ; {
03F0 .dbline 249
03F0 ; INSERT_SPI_STC_ISR_CODE
03F0 7894 sei
03F2 .dbline 249
03F2 .dbline 249
03F2 80E0 ldi R24,<_g_chReceiveBuffer
03F4 90E0 ldi R25,>_g_chReceiveBuffer
03F6 E0910000 lds R30,_g_chSPICounter
03FA FF27 clr R31
03FC E80F add R30,R24
03FE F91F adc R31,R25
0400 2EB4 in R2,0x2e
0402 2082 std z+0,R2
0404 .dbline 249
0404 80910000 lds R24,_g_chSPICounter
0408 8F5F subi R24,255 ; addi 1
040A 80930000 sts _g_chSPICounter,R24
040E .dbline 249
040E 8131 cpi R24,17
0410 39F4 brne L20
0412 X4:
0412 .dbline 249
0412 .dbline 249
0412 2224 clr R2
0414 20920000 sts _g_chSPICounter,R2
0418 .dbline 249
0418 85B1 in R24,0x5
041A 8460 ori R24,4
041C 85B9 out 0x5,R24
041E .dbline 249
041E 09C0 rjmp L21
0420 L20:
0420 .dbline 249
0420 .dbline 249
0420 80E0 ldi R24,<_g_chSendBuffer
0422 90E0 ldi R25,>_g_chSendBuffer
0424 E0910000 lds R30,_g_chSPICounter
0428 FF27 clr R31
042A E80F add R30,R24
042C F91F adc R31,R25
042E 2080 ldd R2,z+0
0430 2EBC out 0x2e,R2
0432 .dbline 249
0432 L21:
0432 .dbline 249
0432 .dbline -2
0432 L19:
0432 .dbline 0 ; func end
0432 2990 ld R2,y+
0434 2FBE out 0x3f,R2
0436 F991 ld R31,y+
0438 E991 ld R30,y+
043A 9991 ld R25,y+
043C 8991 ld R24,y+
043E 2990 ld R2,y+
0440 1895 reti
0442 .dbend
0442 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -