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

📄 rd_useserialbuff.lis

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 008E           ; /***********************************************************
 008E           ; *   函数说明:接收缓冲区首数据察看函数                     *
 008E           ; *   输入:    存储取出数据地址的指针                       *
 008E           ; *   输出:    取值是否成功                                 *
 008E           ; *   调用函数:无                                           *
 008E           ; ***********************************************************/
 008E           ; BOOL UARTPeekDataFromRxBuff(uint8 *pData)
 008E           ; {
 008E                   .dbline 168
 008E           ;     SAFE_CODE_PERFORMANCE
 008E                   .dbline 168
 008E AFB6              in R10,0x3f
 0090                   .dbline 168
 0090 F894              cli
 0092                   .dbline 168
 0092 20900200          lds R2,_UARTRxBuffTail
 0096 30900300          lds R3,_UARTRxBuffTail+1
 009A 40900000          lds R4,_UARTRxBuffHead
 009E 50900100          lds R5,_UARTRxBuffHead+1
 00A2 4214              cp R4,R2
 00A4 5304              cpc R5,R3
 00A6 59F4              brne L7
 00A8           X3:
 00A8 20900400          lds R2,_UARTRxBuffCounter
 00AC 30900500          lds R3,_UARTRxBuffCounter+1
 00B0 2220              tst R2
 00B2 29F4              brne L7
 00B4 3320              tst R3
 00B6 19F4              brne L7
 00B8           X4:
 00B8                   .dbline 168
 00B8                   .dbline 168
 00B8 7894              sei
 00BA                   .dbline 168
 00BA 0027              clr R16
 00BC 0DC0              rjmp L6
 00BE           L7:
 00BE                   .dbline 168
 00BE 80E0              ldi R24,<_UARTRxBuff
 00C0 90E0              ldi R25,>_UARTRxBuff
 00C2 E0910000          lds R30,_UARTRxBuffHead
 00C6 F0910100          lds R31,_UARTRxBuffHead+1
 00CA E80F              add R30,R24
 00CC F91F              adc R31,R25
 00CE 2080              ldd R2,z+0
 00D0 F801              movw R30,R16
 00D2 2082              std z+0,R2
 00D4                   .dbline 168
 00D4                   .dbline 168
 00D4 AFBE              out 0x3f,R10
 00D6                   .dbline 168
 00D6                   .dbline 178
 00D6           ;     (
 00D6           ;         if ((UARTRxBuffHead == UARTRxBuffTail) 
 00D6           ;          && (UARTRxBuffCounter == 0))
 00D6           ;         {
 00D6           ;             SEI();
 00D6           ;             return FALSE;
 00D6           ;         }
 00D6           ;         (*pData) = UARTRxBuff[UARTRxBuffHead];
 00D6           ;     )         
 00D6           ;     return TRUE;
 00D6 01E0              ldi R16,1
 00D8                   .dbline -2
 00D8           L6:
 00D8                   .dbline 0 ; func end
 00D8 A990              ld R10,y+
 00DA 0895              ret
 00DC                   .dbsym r cflags0 10 c
 00DC                   .dbsym r pData 16 pc
 00DC                   .dbend
 00DC                   .dbfunc e UARTaddDataToRxBuff _UARTaddDataToRxBuff fc
 00DC           ;        cflags0 -> R10
 00DC           ;           Data -> R16
                        .even
 00DC           _UARTaddDataToRxBuff::
 00DC AA92              st -y,R10
 00DE                   .dbline -1
 00DE                   .dbline 188
 00DE           ; }
 00DE           ; 
 00DE           ; /***********************************************************
 00DE           ; *  函数说明:向通讯输入缓冲区添加数据函数                  *
 00DE           ; *  输入:    收到的数据                                    *
 00DE           ; *  输出:    无                                            *
 00DE           ; *  调用函数:无                                            *
 00DE           ; ***********************************************************/
 00DE           ; BOOL UARTaddDataToRxBuff(uint8  Data)
 00DE           ; {
 00DE                   .dbline 189
 00DE           ;     SAFE_CODE_PERFORMANCE
 00DE                   .dbline 189
 00DE AFB6              in R10,0x3f
 00E0                   .dbline 189
 00E0 F894              cli
 00E2                   .dbline 189
 00E2 20900200          lds R2,_UARTRxBuffTail
 00E6 30900300          lds R3,_UARTRxBuffTail+1
 00EA 40900000          lds R4,_UARTRxBuffHead
 00EE 50900100          lds R5,_UARTRxBuffHead+1
 00F2 4214              cp R4,R2
 00F4 5304              cpc R5,R3
 00F6 59F4              brne L10
 00F8           X5:
 00F8 80910400          lds R24,_UARTRxBuffCounter
 00FC 90910500          lds R25,_UARTRxBuffCounter+1
 0100 8032              cpi R24,32
 0102 E0E0              ldi R30,0
 0104 9E07              cpc R25,R30
 0106 19F4              brne L10
 0108           X6:
 0108                   .dbline 189
 0108                   .dbline 189
 0108 7894              sei
 010A                   .dbline 189
 010A 0027              clr R16
 010C 29C0              rjmp L9
 010E           L10:
 010E                   .dbline 189
 010E 20900200          lds R2,_UARTRxBuffTail
 0112 30900300          lds R3,_UARTRxBuffTail+1
 0116 C101              movw R24,R2
 0118 0196              adiw R24,1
 011A 90930300          sts _UARTRxBuffTail+1,R25
 011E 80930200          sts _UARTRxBuffTail,R24
 0122 80E0              ldi R24,<_UARTRxBuff
 0124 90E0              ldi R25,>_UARTRxBuff
 0126 F101              movw R30,R2
 0128 E80F              add R30,R24
 012A F91F              adc R31,R25
 012C 0083              std z+0,R16
 012E                   .dbline 189
 012E 80910400          lds R24,_UARTRxBuffCounter
 0132 90910500          lds R25,_UARTRxBuffCounter+1
 0136 0196              adiw R24,1
 0138 90930500          sts _UARTRxBuffCounter+1,R25
 013C 80930400          sts _UARTRxBuffCounter,R24
 0140                   .dbline 189
 0140 80910200          lds R24,_UARTRxBuffTail
 0144 90910300          lds R25,_UARTRxBuffTail+1
 0148 8032              cpi R24,32
 014A E0E0              ldi R30,0
 014C 9E07              cpc R25,R30
 014E 31F4              brne L12
 0150           X7:
 0150                   .dbline 189
 0150                   .dbline 189
 0150 2224              clr R2
 0152 3324              clr R3
 0154 30920300          sts _UARTRxBuffTail+1,R3
 0158 20920200          sts _UARTRxBuffTail,R2
 015C                   .dbline 189
 015C           L12:
 015C                   .dbline 189
 015C                   .dbline 189
 015C AFBE              out 0x3f,R10
 015E                   .dbline 189
 015E                   .dbline 206
 015E           ;     (
 015E           ;         if ((UARTRxBuffHead == UARTRxBuffTail) 
 015E           ;          && (UARTRxBuffCounter == SERIAL_RX_BUFF_SIZE))
 015E           ;         {
 015E           ;             SEI();
 015E           ;             return FALSE;
 015E           ;         }
 015E           ;         UARTRxBuff[UARTRxBuffTail++] = Data;
 015E           ;     
 015E           ;         UARTRxBuffCounter++;
 015E           ;     
 015E           ;         if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
 015E           ;         {
 015E           ;             UARTRxBuffTail = 0;
 015E           ;         }
 015E           ;       )       
 015E           ;     return TRUE;
 015E 01E0              ldi R16,1
 0160                   .dbline -2
 0160           L9:
 0160                   .dbline 0 ; func end
 0160 A990              ld R10,y+
 0162 0895              ret
 0164                   .dbsym r cflags0 10 c
 0164                   .dbsym r Data 16 c
 0164                   .dbend
 0164                   .dbfunc e UARTgetDataFromTxBuff _UARTgetDataFromTxBuff fc
 0164           ;        cflags0 -> R10
 0164           ;           Data -> R16,R17
                        .even
 0164           _UARTgetDataFromTxBuff::
 0164 AA92              st -y,R10
 0166                   .dbline -1
 0166                   .dbline 218
 0166           ; }
 0166           ; #endif
 0166           ; 
 0166           ; #ifdef _USE_SERIAL_TX_BUFF
 0166           ; /***********************************************************
 0166           ; *  函数说明:发送中断取值函数                              *
 0166           ; *  输入:    存储取出数据地址的指针                        *
 0166           ; *  输出:    取值是否成功                                  *
 0166           ; *  调用函数:无                                            *
 0166           ; ***********************************************************/
 0166           ; BOOL UARTgetDataFromTxBuff(uint8 *Data)
 0166           ; {
 0166                   .dbline 220
 0166           ; 
 0166           ;     SAFE_CODE_PERFORMANCE
 0166                   .dbline 220
 0166 AFB6              in R10,0x3f
 0168                   .dbline 220
 0168 F894              cli
 016A                   .dbline 220
 016A 20900800          lds R2,_UARTTxBuffTail
 016E 30900900          lds R3,_UARTTxBuffTail+1
 0172 40900600          lds R4,_UARTTxBuffHead
 0176 50900700          lds R5,_UARTTxBuffHead+1
 017A 4214              cp R4,R2
 017C 5304              cpc R5,R3
 017E 59F4              brne L15
 0180           X8:
 0180 20900A00          lds R2,_UARTTxBuffCounter
 0184 30900B00          lds R3,_UARTTxBuffCounter+1
 0188 2220              tst R2
 018A 29F4              brne L15
 018C 3320              tst R3
 018E 19F4              brne L15
 0190           X9:
 0190                   .dbline 220
 0190                   .dbline 220
 0190 7894              sei
 0192                   .dbline 220
 0192 0027              clr R16
 0194 2BC0              rjmp L14
 0196           L15:
 0196                   .dbline 220
 0196 20900600          lds R2,_UARTTxBuffHead
 019A 30900700          lds R3,_UARTTxBuffHead+1
 019E C101              movw R24,R2
 01A0 0196              adiw R24,1
 01A2 90930700          sts _UARTTxBuffHead+1,R25
 01A6 80930600          sts _UARTTxBuffHead,R24
 01AA 80E0              ldi R24,<_UARTTxBuff
 01AC 90E0              ldi R25,>_UARTTxBuff
 01AE F101              movw R30,R2
 01B0 E80F              add R30,R24
 01B2 F91F              adc R31,R25
 01B4 2080              ldd R2,z+0
 01B6 F801              movw R30,R16
 01B8 2082              std z+0,R2
 01BA                   .dbline 220
 01BA 80910A00          lds R24,_UARTTxBuffCounter
 01BE 90910B00          lds R25,_UARTTxBuffCounter+1
 01C2 0197              sbiw R24,1
 01C4 90930B00          sts _UARTTxBuffCounter+1,R25
 01C8 80930A00          sts _UARTTxBuffCounter,R24
 01CC                   .dbline 220
 01CC 80910600          lds R24,_UARTTxBuffHead
 01D0 90910700          lds R25,_UARTTxBuffHead+1
 01D4 8034              cpi R24,64
 01D6 E0E0              ldi R30,0
 01D8 9E07              cpc R25,R30
 01DA 31F4              brne L17
 01DC           X10:
 01DC                   .dbline 220
 01DC                   .dbline 220
 01DC 2224              clr R2
 01DE 3324              clr R3
 01E0 30920700          sts _UARTTxBuffHead+1,R3
 01E4 20920600          sts _UARTTxBuffHead,R2
 01E8                   .dbline 220
 01E8           L17:
 01E8                   .dbline 220
 01E8                   .dbline 220
 01E8 AFBE              out 0x3f,R10
 01EA                   .dbline 220
 01EA                   .dbline 237
 01EA           ;     (
 01EA           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 01EA           ;          && (UARTTxBuffCounter == 0))
 01EA           ;         {
 01EA           ;             SEI();
 01EA           ;             return FALSE;
 01EA           ;         }
 01EA           ;         (*Data) = UARTTxBuff[UARTTxBuffHead++];
 01EA           ;     
 01EA           ;         UARTTxBuffCounter--;
 01EA           ;     
 01EA           ;         if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
 01EA           ;         {
 01EA           ;             UARTTxBuffHead = 0;
 01EA           ;         }
 01EA           ;     )         
 01EA           ;     return TRUE;
 01EA 01E0              ldi R16,1
 01EC                   .dbline -2
 01EC           L14:
 01EC                   .dbline 0 ; func end
 01EC A990              ld R10,y+
 01EE 0895              ret
 01F0                   .dbsym r cflags0 10 c
 01F0                   .dbsym r Data 16 pc
 01F0                   .dbend
 01F0                   .dbfunc e UARTPeekDataFromTxBuff _UARTPeekDataFromTxBuff fc

⌨️ 快捷键说明

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