📄 ex_support.lis
字号:
0006 2220 tst R2
0008 11F0 breq L3
000A X0:
000A .dbline 122
000A ; {
000A .dbline 123
000A ; return TRUE;
000A 01E0 ldi R16,1
000C 41C0 rjmp L2
000E L3:
000E .dbline 126
000E ; }
000E ; //处理数据
000E ; TYPE_CONVERSION(&g_chSendBuffer[3],float) = g_fX;
000E 40900200 lds R4,_g_fX+2
0012 50900300 lds R5,_g_fX+2+1
0016 20900000 lds R2,_g_fX
001A 30900100 lds R3,_g_fX+1
001E E0E0 ldi R30,<_g_chSendBuffer+3
0020 F0E0 ldi R31,>_g_chSendBuffer+3
0022 2082 std z+0,R2
0024 3182 std z+1,R3
0026 4282 std z+2,R4
0028 5382 std z+3,R5
002A .dbline 127
002A ; TYPE_CONVERSION(&g_chSendBuffer[7],float) = g_fY;
002A 40900200 lds R4,_g_fY+2
002E 50900300 lds R5,_g_fY+2+1
0032 20900000 lds R2,_g_fY
0036 30900100 lds R3,_g_fY+1
003A E0E0 ldi R30,<_g_chSendBuffer+7
003C F0E0 ldi R31,>_g_chSendBuffer+7
003E 2082 std z+0,R2
0040 3182 std z+1,R3
0042 4282 std z+2,R4
0044 5382 std z+3,R5
0046 .dbline 128
0046 ; TYPE_CONVERSION(&g_chSendBuffer[11],float) = g_fLastAngle;
0046 40900200 lds R4,_g_fLastAngle+2
004A 50900300 lds R5,_g_fLastAngle+2+1
004E 20900000 lds R2,_g_fLastAngle
0052 30900100 lds R3,_g_fLastAngle+1
0056 E0E0 ldi R30,<_g_chSendBuffer+11
0058 F0E0 ldi R31,>_g_chSendBuffer+11
005A 2082 std z+0,R2
005C 3182 std z+1,R3
005E 4282 std z+2,R4
0060 5382 std z+3,R5
0062 .dbline 130
0062 ;
0062 ; {
0062 .dbline 131
0062 ; UINT8 n = 0;
0062 .dbline 132
0062 ; BYTE chXOR = 0;
0062 0027 clr R16
0064 .dbline 134
0064 ;
0064 ; for(n = 1;n < 15;n++)
0064 21E0 ldi R18,1
0066 09C0 rjmp L11
0068 L8:
0068 .dbline 135
0068 ; {
0068 .dbline 136
0068 ; chXOR ^= g_chSendBuffer[n];
0068 80E0 ldi R24,<_g_chSendBuffer
006A 90E0 ldi R25,>_g_chSendBuffer
006C E22F mov R30,R18
006E FF27 clr R31
0070 E80F add R30,R24
0072 F91F adc R31,R25
0074 2080 ldd R2,z+0
0076 0225 eor R16,R2
0078 .dbline 137
0078 ; }
0078 L9:
0078 .dbline 134
0078 2395 inc R18
007A L11:
007A .dbline 134
007A 2F30 cpi R18,15
007C A8F3 brlo L8
007E X1:
007E .dbline 139
007E ;
007E ; g_chSendBuffer[15] = chXOR;
007E 00932300 sts _g_chSendBuffer+15,R16
0082 .dbline 140
0082 ; }
0082 .dbline 143
0082 ;
0082 ; //开始发送数据
0082 ; SPI_SS = LOW;
0082 85B1 in R24,0x5
0084 8B7F andi R24,251
0086 85B9 out 0x5,R24
0088 .dbline 144
0088 ; SPDR = g_chSendBuffer[0];
0088 20901400 lds R2,_g_chSendBuffer
008C 2EBC out 0x2e,R2
008E .dbline 146
008E ;
008E ; return FALSE;
008E 0027 clr R16
0090 .dbline -2
0090 L2:
0090 .dbline 0 ; func end
0090 0895 ret
0092 .dbsym r n1 18 c
0092 .dbsym r chXOR0 16 c
0092 .dbend
0092 .dbfunc e Delay_MS _Delay_MS fV
0092 ; wTime -> R16,R17
.even
0092 _Delay_MS::
0092 .dbline -1
0092 .dbline 156
0092 ; }
0092 ;
0092 ; /***********************************************************
0092 ; * 函数说明:系统毫秒延时函数 *
0092 ; * 输入: 需要延时的时间长度 *
0092 ; * 输出: 无 *
0092 ; * 调用函数:无 *
0092 ; ***********************************************************/
0092 ; void Delay_MS(uint16 wTime)
0092 ; {
0092 .dbline 157
0092 ; s_wSystemDelayTimerCounter = wTime;
0092 10930100 sts _s_wSystemDelayTimerCounter+1,R17
0096 00930000 sts _s_wSystemDelayTimerCounter,R16
009A L14:
009A .dbline 159
009A ;
009A ; while(s_wSystemDelayTimerCounter);
009A L15:
009A .dbline 159
009A 20900000 lds R2,_s_wSystemDelayTimerCounter
009E 30900100 lds R3,_s_wSystemDelayTimerCounter+1
00A2 2220 tst R2
00A4 D1F7 brne L14
00A6 3320 tst R3
00A8 C1F7 brne L14
00AA X2:
00AA .dbline -2
00AA L13:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbsym r wTime 16 i
00AC .dbend
00AC .dbfunc e Insert_Timer0_OVF_ISR_Code _Insert_Timer0_OVF_ISR_Code fV
00AC ; cflags0 -> R16
.even
00AC _Insert_Timer0_OVF_ISR_Code::
00AC .dbline -1
00AC .dbline 169
00AC ; }
00AC ;
00AC ; /***********************************************************
00AC ; * 函数说明:定时器0中断处理程序代码插入函数 *
00AC ; * 输入: 无 *
00AC ; * 输出: 无 *
00AC ; * 调用函数:无 *
00AC ; ***********************************************************/
00AC ; void Insert_Timer0_OVF_ISR_Code(void)
00AC ; {
00AC .dbline 170
00AC ; g_wSystemTimer++;
00AC 80910200 lds R24,_g_wSystemTimer
00B0 90910300 lds R25,_g_wSystemTimer+1
00B4 0196 adiw R24,1
00B6 90930300 sts _g_wSystemTimer+1,R25
00BA 80930200 sts _g_wSystemTimer,R24
00BE .dbline 172
00BE ;
00BE ; if (s_wSystemDelayTimerCounter)
00BE 20900000 lds R2,_s_wSystemDelayTimerCounter
00C2 30900100 lds R3,_s_wSystemDelayTimerCounter+1
00C6 2220 tst R2
00C8 11F4 brne X3
00CA 3320 tst R3
00CC 31F0 breq L18
00CE X3:
00CE .dbline 173
00CE ; {
00CE .dbline 174
00CE ; s_wSystemDelayTimerCounter--;
00CE C101 movw R24,R2
00D0 0197 sbiw R24,1
00D2 90930100 sts _s_wSystemDelayTimerCounter+1,R25
00D6 80930000 sts _s_wSystemDelayTimerCounter,R24
00DA .dbline 175
00DA ; }
00DA L18:
00DA .dbline 177
00DA ;
00DA ; SAFE_CODE_PERFORMANCE
00DA .dbline 177
00DA 0FB7 in R16,0x3f
00DC .dbline 177
00DC F894 cli
00DE .dbline 177
00DE 40900600 lds R4,_g_lCounterL+2
00E2 50900700 lds R5,_g_lCounterL+2+1
00E6 20900400 lds R2,_g_lCounterL
00EA 30900500 lds R3,_g_lCounterL+1
00EE 30920D00 sts _g_lCounterLImage+1,R3
00F2 20920C00 sts _g_lCounterLImage,R2
00F6 50920F00 sts _g_lCounterLImage+2+1,R5
00FA 40920E00 sts _g_lCounterLImage+2,R4
00FE .dbline 177
00FE 40900A00 lds R4,_g_lCounterR+2
0102 50900B00 lds R5,_g_lCounterR+2+1
0106 20900800 lds R2,_g_lCounterR
010A 30900900 lds R3,_g_lCounterR+1
010E 30921100 sts _g_lCounterRImage+1,R3
0112 20921000 sts _g_lCounterRImage,R2
0116 50921300 sts _g_lCounterRImage+2+1,R5
011A 40921200 sts _g_lCounterRImage+2,R4
011E .dbline 177
011E .dbline 177
011E 0FBF out 0x3f,R16
0120 .dbline 177
0120 .dbline 182
0120 ; (
0120 ; g_lCounterLImage = g_lCounterL;
0120 ; g_lCounterRImage = g_lCounterR;
0120 ; )
0120 ; g_bRunFlagA = TRUE;
0120 81E0 ldi R24,1
0122 80930000 sts _g_bRunFlagA,R24
0126 .dbline -2
0126 L17:
0126 .dbline 0 ; func end
0126 0895 ret
0128 .dbsym r cflags0 16 c
0128 .dbend
0128 ;
0128 ; #ifdef _DEBUG
0128 ; if (!(g_wSystemTimer & (BIT(5) - 1)))
0128 ; {
0128 ; LCDSP027_refresh_DISP_BUFF();
0128 ; }
0128 ; #endif
0128 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -