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

📄 rd_useserialbuff.lis

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01F0           ;        cflags0 -> R10
 01F0           ;          pData -> R16,R17
                        .even
 01F0           _UARTPeekDataFromTxBuff::
 01F0 AA92              st -y,R10
 01F2                   .dbline -1
 01F2                   .dbline 247
 01F2           ; }
 01F2           ; 
 01F2           ; /***********************************************************
 01F2           ; *   函数说明:首数据察看函数                               *
 01F2           ; *   输入:    存储数据地址的指针                           *
 01F2           ; *   输出:    取值是否成功                                 *
 01F2           ; *   调用函数:五                                           *
 01F2           ; ***********************************************************/
 01F2           ; BOOL UARTPeekDataFromTxBuff(uint8 *pData)
 01F2           ; {
 01F2                   .dbline 248
 01F2           ;     SAFE_CODE_PERFORMANCE
 01F2                   .dbline 248
 01F2 AFB6              in R10,0x3f
 01F4                   .dbline 248
 01F4 F894              cli
 01F6                   .dbline 248
 01F6 20900800          lds R2,_UARTTxBuffTail
 01FA 30900900          lds R3,_UARTTxBuffTail+1
 01FE 40900600          lds R4,_UARTTxBuffHead
 0202 50900700          lds R5,_UARTTxBuffHead+1
 0206 4214              cp R4,R2
 0208 5304              cpc R5,R3
 020A 59F4              brne L20
 020C           X11:
 020C 20900A00          lds R2,_UARTTxBuffCounter
 0210 30900B00          lds R3,_UARTTxBuffCounter+1
 0214 2220              tst R2
 0216 29F4              brne L20
 0218 3320              tst R3
 021A 19F4              brne L20
 021C           X12:
 021C                   .dbline 248
 021C                   .dbline 248
 021C 7894              sei
 021E                   .dbline 248
 021E 0027              clr R16
 0220 0DC0              rjmp L19
 0222           L20:
 0222                   .dbline 248
 0222 80E0              ldi R24,<_UARTTxBuff
 0224 90E0              ldi R25,>_UARTTxBuff
 0226 E0910600          lds R30,_UARTTxBuffHead
 022A F0910700          lds R31,_UARTTxBuffHead+1
 022E E80F              add R30,R24
 0230 F91F              adc R31,R25
 0232 2080              ldd R2,z+0
 0234 F801              movw R30,R16
 0236 2082              std z+0,R2
 0238                   .dbline 248
 0238                   .dbline 248
 0238 AFBE              out 0x3f,R10
 023A                   .dbline 248
 023A                   .dbline 258
 023A           ;     (
 023A           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 023A           ;          && (UARTTxBuffCounter == 0))
 023A           ;         {
 023A           ;             SEI();
 023A           ;             return FALSE;
 023A           ;         }
 023A           ;         (*pData) = UARTTxBuff[UARTTxBuffHead];
 023A           ;     )         
 023A           ;     return TRUE;
 023A 01E0              ldi R16,1
 023C                   .dbline -2
 023C           L19:
 023C                   .dbline 0 ; func end
 023C A990              ld R10,y+
 023E 0895              ret
 0240                   .dbsym r cflags0 10 c
 0240                   .dbsym r pData 16 pc
 0240                   .dbend
 0240                   .dbfunc e UARTaddDataToTxBuff _UARTaddDataToTxBuff fc
 0240           ;        cflags0 -> R10
 0240           ;           Data -> R16
                        .even
 0240           _UARTaddDataToTxBuff::
 0240 AA92              st -y,R10
 0242                   .dbline -1
 0242                   .dbline 268
 0242           ; }
 0242           ; 
 0242           ; /***********************************************************
 0242           ; *  函数说明:向通讯输出缓冲区添加数据函数                  *
 0242           ; *  输入:    需要发送的数据                                *
 0242           ; *  输出:    无                                            *
 0242           ; *  调用函数:无                                            *
 0242           ; ***********************************************************/
 0242           ; BOOL UARTaddDataToTxBuff(uint8 Data)
 0242           ; {
 0242                   .dbline 270
 0242           ;     
 0242           ;     SAFE_CODE_PERFORMANCE
 0242                   .dbline 270
 0242 AFB6              in R10,0x3f
 0244                   .dbline 270
 0244 F894              cli
 0246                   .dbline 270
 0246 20900800          lds R2,_UARTTxBuffTail
 024A 30900900          lds R3,_UARTTxBuffTail+1
 024E 40900600          lds R4,_UARTTxBuffHead
 0252 50900700          lds R5,_UARTTxBuffHead+1
 0256 4214              cp R4,R2
 0258 5304              cpc R5,R3
 025A 59F4              brne L23
 025C           X13:
 025C 80910A00          lds R24,_UARTTxBuffCounter
 0260 90910B00          lds R25,_UARTTxBuffCounter+1
 0264 8034              cpi R24,64
 0266 E0E0              ldi R30,0
 0268 9E07              cpc R25,R30
 026A 19F4              brne L23
 026C           X14:
 026C                   .dbline 270
 026C                   .dbline 270
 026C 7894              sei
 026E                   .dbline 270
 026E 0027              clr R16
 0270 29C0              rjmp L22
 0272           L23:
 0272                   .dbline 270
 0272 20900800          lds R2,_UARTTxBuffTail
 0276 30900900          lds R3,_UARTTxBuffTail+1
 027A C101              movw R24,R2
 027C 0196              adiw R24,1
 027E 90930900          sts _UARTTxBuffTail+1,R25
 0282 80930800          sts _UARTTxBuffTail,R24
 0286 80E0              ldi R24,<_UARTTxBuff
 0288 90E0              ldi R25,>_UARTTxBuff
 028A F101              movw R30,R2
 028C E80F              add R30,R24
 028E F91F              adc R31,R25
 0290 0083              std z+0,R16
 0292                   .dbline 270
 0292 80910A00          lds R24,_UARTTxBuffCounter
 0296 90910B00          lds R25,_UARTTxBuffCounter+1
 029A 0196              adiw R24,1
 029C 90930B00          sts _UARTTxBuffCounter+1,R25
 02A0 80930A00          sts _UARTTxBuffCounter,R24
 02A4                   .dbline 270
 02A4 80910800          lds R24,_UARTTxBuffTail
 02A8 90910900          lds R25,_UARTTxBuffTail+1
 02AC 8034              cpi R24,64
 02AE E0E0              ldi R30,0
 02B0 9E07              cpc R25,R30
 02B2 31F4              brne L25
 02B4           X15:
 02B4                   .dbline 270
 02B4                   .dbline 270
 02B4 2224              clr R2
 02B6 3324              clr R3
 02B8 30920900          sts _UARTTxBuffTail+1,R3
 02BC 20920800          sts _UARTTxBuffTail,R2
 02C0                   .dbline 270
 02C0           L25:
 02C0                   .dbline 270
 02C0                   .dbline 270
 02C0 AFBE              out 0x3f,R10
 02C2                   .dbline 270
 02C2                   .dbline 287
 02C2           ;     (
 02C2           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 02C2           ;          && (UARTTxBuffCounter == SERIAL_TX_BUFF_SIZE))
 02C2           ;         {
 02C2           ;             SEI();
 02C2           ;             return FALSE;
 02C2           ;         }
 02C2           ;         UARTTxBuff[UARTTxBuffTail++] = Data;
 02C2           ;     
 02C2           ;         UARTTxBuffCounter ++;
 02C2           ;     
 02C2           ;         if (UARTTxBuffTail == SERIAL_TX_BUFF_SIZE)
 02C2           ;         {
 02C2           ;             UARTTxBuffTail = 0;
 02C2           ;         }
 02C2           ;       )       
 02C2           ;     return TRUE;
 02C2 01E0              ldi R16,1
 02C4                   .dbline -2
 02C4           L22:
 02C4                   .dbline 0 ; func end
 02C4 A990              ld R10,y+
 02C6 0895              ret
 02C8                   .dbsym r cflags0 10 c
 02C8                   .dbsym r Data 16 c
 02C8                   .dbend
 02C8                   .dbfunc e PROC_Serial_Transmitter _PROC_Serial_Transmitter fc
 02C8           ;        cflags0 -> R10
 02C8           ;  cTransmitByte -> y+0
                        .even
 02C8           _PROC_Serial_Transmitter::
 02C8 AA92              st -y,R10
 02CA 2197              sbiw R28,1
 02CC                   .dbline -1
 02CC                   .dbline 298
 02CC           ; } 
 02CC           ; 
 02CC           ; #ifdef _USE_SERIAL_TX_TRANSMITTER_PROC
 02CC           ; /***********************************************************
 02CC           ; *   函数说明:串行发送进程                                 *
 02CC           ; *   输入:    无                                           *
 02CC           ; *   输出:    是否继续执行                                 *
 02CC           ; *   调用函数:UARTgetDataFromTxBuff()                      *
 02CC           ; ***********************************************************/
 02CC           ; BOOL PROC_Serial_Transmitter(void)
 02CC           ; {
 02CC                   .dbline 299
 02CC           ;     uint8 cTransmitByte = 0;
 02CC 2224              clr R2
 02CE 2882              std y+0,R2
 02D0                   .dbline 301
 02D0           ;     
 02D0           ;     SAFE_CODE_PERFORMANCE
 02D0                   .dbline 301
 02D0 AFB6              in R10,0x3f
 02D2                   .dbline 301
 02D2 F894              cli
 02D4                   .dbline 301
 02D4 20900C00          lds R2,_g_bIfSerialTransmitCompleted
 02D8 2220              tst R2
 02DA 69F0              breq L28
 02DC           X16:
 02DC                   .dbline 301
 02DC                   .dbline 301
 02DC 8E01              movw R16,R28
 02DE 42DF              rcall _UARTgetDataFromTxBuff
 02E0 0023              tst R16
 02E2 19F4              brne L30
 02E4           X17:
 02E4                   .dbline 301
 02E4                   .dbline 301
 02E4 AFBE              out 0x3f,R10
 02E6                   .dbline 301
 02E6 01E0              ldi R16,1
 02E8 08C0              rjmp L27
 02EA           L30:
 02EA                   .dbline 301
 02EA                   .dbline 301
 02EA                   .dbline 301
 02EA 2224              clr R2
 02EC 20920C00          sts _g_bIfSerialTransmitCompleted,R2
 02F0                   .dbline 301
 02F0 2880              ldd R2,y+0
 02F2 2092C600          sts 198,R2
 02F6                   .dbline 301
 02F6           L28:
 02F6                   .dbline 301
 02F6                   .dbline 301
 02F6 AFBE              out 0x3f,R10
 02F8                   .dbline 301
 02F8                   .dbline 321
 02F8           ;     (
 02F8           ;         if (g_bIfSerialTransmitCompleted)
 02F8           ;         {
 02F8           ;             if (!UARTgetDataFromTxBuff(&cTransmitByte))
 02F8           ;             {
 02F8           ;                 EXIT_SAFE_CODE
 02F8           ;                 SERIAL_DISABLE_WRITE
 02F8           ;                 return TRUE;
 02F8           ;             }
 02F8           ;             else
 02F8           ;             {
 02F8           ;                 SERIAL_ENABLE_WRITE
 02F8           ;             }
 02F8           ;             g_bIfSerialTransmitCompleted = FALSE;
 02F8           ;             UDR_PORT = cTransmitByte;
 02F8           ;         }
 02F8           ;     )
 02F8           ;     
 02F8           ;     
 02F8           ;     return TRUE;
 02F8 01E0              ldi R16,1
 02FA                   .dbline -2
 02FA           L27:
 02FA                   .dbline 0 ; func end
 02FA 2196              adiw R28,1
 02FC A990              ld R10,y+
 02FE 0895              ret
 0300                   .dbsym r cflags0 10 c
 0300                   .dbsym l cTransmitByte 0 c
 0300                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseSerialBuff.c
 0000           _UARTTxBuff:
 0000                   .blkb 64
 0040                   .dbsym s UARTTxBuff _UARTTxBuff A[64:64]c
 0040           _UARTRxBuff:
 0040                   .blkb 32
 0060                   .dbsym s UARTRxBuff _UARTRxBuff A[32:32]c
 0060           ; }
 0060           ; #endif
 0060           ; 
 0060           ; #endif

⌨️ 快捷键说明

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