⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 这是AVR单片机上能跑的嵌入式操作系统salvo
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0200 2FB0              in R2,0xf
 0202 2082              std z+0,R2
 0204                   .dbline 175
 0204           ;               SPI_DatConter++;
 0204 80913D00          lds R24,_SPI_DatConter
 0208 8F5F              subi R24,255    ; addi 1
 020A 80933D00          sts _SPI_DatConter,R24
 020E                   .dbline 176
 020E           ;               if(SPI_DatConter==SPI_DatLen)
 020E 20903E00          lds R2,_SPI_DatLen
 0212 8215              cp R24,R2
 0214 49F5              brne L66
 0216                   .dbline 177
 0216           ;                       {
 0216                   .dbline 178
 0216           ;                       SPI_Status=0x03;
 0216 83E0              ldi R24,3
 0218 80934100          sts _SPI_Status,R24
 021C                   .dbline 179
 021C           ;                       SPI_DatConter=0;
 021C 2224              clr R2
 021E 20923D00          sts _SPI_DatConter,R2
 0222                   .dbline 180
 0222           ;                       }
 0222                   .dbline 181
 0222           ;               }
 0222 22C0              xjmp L66
 0224           L65:
 0224                   .dbline 182
 0224           ;       else if(SPI_Status==0x03)
 0224 80914100          lds R24,_SPI_Status
 0228 8330              cpi R24,3
 022A F1F4              brne L70
 022C                   .dbline 183
 022C           ;               {
 022C                   .dbline 184
 022C           ;               SPI_DatEnd=SPDR;
 022C 2FB0              in R2,0xf
 022E 20923B00          sts _SPI_DatEnd,R2
 0232                   .dbline 185
 0232           ;               if(SPI_DatEnd!=0x16)
 0232 822D              mov R24,R2
 0234 8631              cpi R24,22
 0236 31F0              breq L72
 0238                   .dbline 186
 0238           ;                       {
 0238                   .dbline 187
 0238           ;                       SPI_validFrame=FALSE;
 0238 80914200          lds R24,_bit_flag
 023C 8F7E              andi R24,239
 023E 80934200          sts _bit_flag,R24
 0242                   .dbline 188
 0242           ;                       }
 0242 12C0              xjmp L73
 0244           L72:
 0244                   .dbline 190
 0244           ;               else
 0244           ;                       {
 0244                   .dbline 191
 0244           ;                       SPI_RecvFifo[SPI_DatLen+2]=SPI_DatEnd;
 0244 80E0              ldi R24,<_SPI_RecvFifo+2
 0246 90E0              ldi R25,>_SPI_RecvFifo+2
 0248 E0913E00          lds R30,_SPI_DatLen
 024C FF27              clr R31
 024E E80F              add R30,R24
 0250 F91F              adc R31,R25
 0252 20903B00          lds R2,_SPI_DatEnd
 0256 2082              std z+0,R2
 0258                   .dbline 192
 0258           ;                       SPI_validFrame=TRUE;
 0258 80914200          lds R24,_bit_flag
 025C 8061              ori R24,16
 025E 80934200          sts _bit_flag,R24
 0262                   .dbline 193
 0262           ;                       SPI_Status=0x00;
 0262 2224              clr R2
 0264 20924100          sts _SPI_Status,R2
 0268                   .dbline 194
 0268           ;                       }
 0268           L73:
 0268                   .dbline 195
 0268           ;               }
 0268           L70:
 0268           L66:
 0268           L63:
 0268           L59:
 0268                   .dbline -2
 0268           L55:
 0268 2990              ld R2,y+
 026A 2FBE              out 0x3f,R2
 026C F991              ld R31,y+
 026E E991              ld R30,y+
 0270 9991              ld R25,y+
 0272 8991              ld R24,y+
 0274 2990              ld R2,y+
 0276                   .dbline 0 ; func end
 0276 1895              reti
 0278                   .dbend
 0278                   .dbfunc e UART_RX_interrupt _UART_RX_interrupt fV
                        .even
 0278           _UART_RX_interrupt::
 0278 2A92              st -y,R2
 027A 8A93              st -y,R24
 027C 9A93              st -y,R25
 027E EA93              st -y,R30
 0280 FA93              st -y,R31
 0282 2FB6              in R2,0x3f
 0284 2A92              st -y,R2
 0286                   .dbline -1
 0286                   .dbline 198
 0286           ; }
 0286           ;  void UART_RX_interrupt(void)
 0286           ;       {
 0286                   .dbline 199
 0286           ;       if(RS485_validFrame)
 0286 80914200          lds R24,_bit_flag
 028A 8695              lsr R24
 028C 8695              lsr R24
 028E 8695              lsr R24
 0290 8170              andi R24,1
 0292 09F0              breq L76
 0294                   .dbline 200
 0294           ;               {return;}
 0294                   .dbline 200
 0294 55C0              xjmp L75
 0296           L76:
 0296                   .dbline 201
 0296           ;       if(RS485_status==0x00)
 0296 20905500          lds R2,_RS485_status
 029A 2220              tst R2
 029C 71F4              brne L78
 029E                   .dbline 202
 029E           ;               {
 029E                   .dbline 203
 029E           ;               RS485_data=UDR;
 029E 2CB0              in R2,0xc
 02A0 20925400          sts _RS485_data,R2
 02A4                   .dbline 204
 02A4           ;               if(RS485_data!=0x68)
 02A4 822D              mov R24,R2
 02A6 8836              cpi R24,104
 02A8 21F0              breq L80
 02AA                   .dbline 205
 02AA           ;                       {
 02AA                   .dbline 206
 02AA           ;                       RS485_status=0x00;
 02AA 2224              clr R2
 02AC 20925500          sts _RS485_status,R2
 02B0                   .dbline 207
 02B0           ;                       }
 02B0 47C0              xjmp L79
 02B2           L80:
 02B2                   .dbline 209
 02B2           ;               else
 02B2           ;                       {
 02B2                   .dbline 210
 02B2           ;                       RS485_status=0x01;
 02B2 81E0              ldi R24,1
 02B4 80935500          sts _RS485_status,R24
 02B8                   .dbline 211
 02B8           ;                       }
 02B8                   .dbline 212
 02B8           ;               }
 02B8 43C0              xjmp L79
 02BA           L78:
 02BA                   .dbline 213
 02BA           ;       else if(RS485_status==0x01)
 02BA 80915500          lds R24,_RS485_status
 02BE 8130              cpi R24,1
 02C0 39F4              brne L82
 02C2                   .dbline 214
 02C2           ;               {
 02C2                   .dbline 215
 02C2           ;               robotDatLen=UDR;
 02C2 2CB0              in R2,0xc
 02C4 20925200          sts _robotDatLen,R2
 02C8                   .dbline 216
 02C8           ;               RS485_status=0x02;
 02C8 82E0              ldi R24,2
 02CA 80935500          sts _RS485_status,R24
 02CE                   .dbline 217
 02CE           ;               }
 02CE 38C0              xjmp L83
 02D0           L82:
 02D0                   .dbline 218
 02D0           ;       else if(RS485_status==0x02)
 02D0 80915500          lds R24,_RS485_status
 02D4 8230              cpi R24,2
 02D6 C9F4              brne L84
 02D8                   .dbline 219
 02D8           ;               {
 02D8                   .dbline 220
 02D8           ;               robotDatBuf[robotDatCount]=UDR;
 02D8 80E0              ldi R24,<_robotDatBuf
 02DA 90E0              ldi R25,>_robotDatBuf
 02DC E0914700          lds R30,_robotDatCount
 02E0 FF27              clr R31
 02E2 E80F              add R30,R24
 02E4 F91F              adc R31,R25
 02E6 2CB0              in R2,0xc
 02E8 2082              std z+0,R2
 02EA                   .dbline 221
 02EA           ;               robotDatCount++;
 02EA 80914700          lds R24,_robotDatCount
 02EE 8F5F              subi R24,255    ; addi 1
 02F0 80934700          sts _robotDatCount,R24
 02F4                   .dbline 222
 02F4           ;               if(robotDatCount==robotDatLen)
 02F4 20905200          lds R2,_robotDatLen
 02F8 8215              cp R24,R2
 02FA 11F5              brne L85
 02FC                   .dbline 223
 02FC           ;                       {
 02FC                   .dbline 224
 02FC           ;                       RS485_status=0x03;
 02FC 83E0              ldi R24,3
 02FE 80935500          sts _RS485_status,R24
 0302                   .dbline 225
 0302           ;                       robotDatCount=0;
 0302 2224              clr R2
 0304 20924700          sts _robotDatCount,R2
 0308                   .dbline 226
 0308           ;                       }
 0308                   .dbline 227
 0308           ;               }
 0308 1BC0              xjmp L85
 030A           L84:
 030A                   .dbline 228
 030A           ;       else if(RS485_status==0x03)
 030A 80915500          lds R24,_RS485_status
 030E 8330              cpi R24,3
 0310 B9F4              brne L88
 0312                   .dbline 229
 0312           ;               {
 0312                   .dbline 230
 0312           ;               robotDatEnd=UDR;
 0312 2CB0              in R2,0xc
 0314 20924500          sts _robotDatEnd,R2
 0318                   .dbline 231
 0318           ;               if(robotDatEnd!=0x16)
 0318 822D              mov R24,R2
 031A 8631              cpi R24,22
 031C 39F0              breq L90
 031E                   .dbline 232
 031E           ;                       {
 031E                   .dbline 233
 031E           ;                       RS485_validFrame=FALSE;
 031E 80914200          lds R24,_bit_flag
 0322 877F              andi R24,247
 0324 80934200          sts _bit_flag,R24
 0328                   .dbline 234
 0328           ;                       PORTC|=0x02;
 0328 A99A              sbi 0x15,1
 032A                   .dbline 235
 032A           ;                       }
 032A 0AC0              xjmp L91
 032C           L90:
 032C                   .dbline 237
 032C           ;               else
 032C           ;                       {
 032C                   .dbline 238
 032C           ;                       RS485_validFrame=TRUE;
 032C 80914200          lds R24,_bit_flag
 0330 8860              ori R24,8
 0332 80934200          sts _bit_flag,R24
 0336                   .dbline 239
 0336           ;                       RS485_status=0x00;
 0336 2224              clr R2
 0338 20925500          sts _RS485_status,R2
 033C                   .dbline 240
 033C           ;                       PORTC=0x01;
 033C 81E0              ldi R24,1
 033E 85BB              out 0x15,R24
 0340                   .dbline 241
 0340           ;                       }
 0340           L91:
 0340                   .dbline 242
 0340           ;               }
 0340           L88:
 0340           L85:
 0340           L83:
 0340           L79:
 0340                   .dbline -2
 0340           L75:
 0340 2990              ld R2,y+
 0342 2FBE              out 0x3f,R2
 0344 F991              ld R31,y+
 0346 E991              ld R30,y+
 0348 9991              ld R25,y+
 034A 8991              ld R24,y+
 034C 2990              ld R2,y+
 034E                   .dbline 0 ; func end
 034E 1895              reti
 0350                   .dbend
 0350                   .dbfunc e Uart_SendByte _Uart_SendByte fV
                        .even
 0350           _Uart_SendByte::
 0350                   .dbline -1
 0350                   .dbline 245
 0350           ;       }
 0350           ; void Uart_SendByte(void)
 0350           ; {
 0350           L93:
 0350                   .dbline 246
 0350           L94:
 0350                   .dbline 246
 0350           ;  while(!(UCSRA&(1<<UDRE)));
 0350 5D9B              sbis 0xb,5
 0352 FECF              rjmp L93
 0354                   .dbline 247
 0354           ;  UDR=(*Uart_send_ptr);
 0354 E0914300          lds R30,_Uart_send_ptr
 0358 F0914400          lds R31,_Uart_send_ptr+1
 035C 2080              ldd R2,z+0
 035E 2CB8              out 0xc,R2
 0360                   .dbline -2
 0360           L92:
 0360                   .dbline 0 ; func end
 0360 0895              ret
 0362                   .dbend
 0362                   .dbfunc e Uart_SendPacket _Uart_SendPacket fV
 0362           ;  BufferAddress -> R22,R23
 0362           ;            len -> R20
                        .even
 0362           _Uart_SendPacket::
 0362 0E940000          xcall push_gset2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -