?? rd_useserialbuff.s
字號(hào):
.dbline 189
L12:
.dbline 189
.dbline 189
out 0x3f,R10
.dbline 189
.dbline 206
; (
; if ((UARTRxBuffHead == UARTRxBuffTail)
; && (UARTRxBuffCounter == SERIAL_RX_BUFF_SIZE))
; {
; SEI();
; return FALSE;
; }
; UARTRxBuff[UARTRxBuffTail++] = Data;
;
; UARTRxBuffCounter++;
;
; if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
; {
; UARTRxBuffTail = 0;
; }
; )
; return TRUE;
ldi R16,1
.dbline -2
L9:
.dbline 0 ; func end
ld R10,y+
ret
.dbsym r cflags0 10 c
.dbsym r Data 16 c
.dbend
.dbfunc e UARTgetDataFromTxBuff _UARTgetDataFromTxBuff fc
; cflags0 -> R10
; Data -> R16,R17
.even
_UARTgetDataFromTxBuff::
st -y,R10
.dbline -1
.dbline 218
; }
; #endif
;
; #ifdef _USE_SERIAL_TX_BUFF
; /***********************************************************
; * 函數(shù)說明:發(fā)送中斷取值函數(shù) *
; * 輸入: 存儲(chǔ)取出數(shù)據(jù)地址的指針 *
; * 輸出: 取值是否成功 *
; * 調(diào)用函數(shù):無 *
; ***********************************************************/
; BOOL UARTgetDataFromTxBuff(uint8 *Data)
; {
.dbline 220
;
; SAFE_CODE_PERFORMANCE
.dbline 220
in R10,0x3f
.dbline 220
cli
.dbline 220
lds R2,_UARTTxBuffTail
lds R3,_UARTTxBuffTail+1
lds R4,_UARTTxBuffHead
lds R5,_UARTTxBuffHead+1
cp R4,R2
cpc R5,R3
brne L15
X8:
lds R2,_UARTTxBuffCounter
lds R3,_UARTTxBuffCounter+1
tst R2
brne L15
tst R3
brne L15
X9:
.dbline 220
.dbline 220
sei
.dbline 220
clr R16
rjmp L14
L15:
.dbline 220
lds R2,_UARTTxBuffHead
lds R3,_UARTTxBuffHead+1
movw R24,R2
adiw R24,1
sts _UARTTxBuffHead+1,R25
sts _UARTTxBuffHead,R24
ldi R24,<_UARTTxBuff
ldi R25,>_UARTTxBuff
movw R30,R2
add R30,R24
adc R31,R25
ldd R2,z+0
movw R30,R16
std z+0,R2
.dbline 220
lds R24,_UARTTxBuffCounter
lds R25,_UARTTxBuffCounter+1
sbiw R24,1
sts _UARTTxBuffCounter+1,R25
sts _UARTTxBuffCounter,R24
.dbline 220
lds R24,_UARTTxBuffHead
lds R25,_UARTTxBuffHead+1
cpi R24,64
ldi R30,0
cpc R25,R30
brne L17
X10:
.dbline 220
.dbline 220
clr R2
clr R3
sts _UARTTxBuffHead+1,R3
sts _UARTTxBuffHead,R2
.dbline 220
L17:
.dbline 220
.dbline 220
out 0x3f,R10
.dbline 220
.dbline 237
; (
; if ((UARTTxBuffHead == UARTTxBuffTail)
; && (UARTTxBuffCounter == 0))
; {
; SEI();
; return FALSE;
; }
; (*Data) = UARTTxBuff[UARTTxBuffHead++];
;
; UARTTxBuffCounter--;
;
; if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
; {
; UARTTxBuffHead = 0;
; }
; )
; return TRUE;
ldi R16,1
.dbline -2
L14:
.dbline 0 ; func end
ld R10,y+
ret
.dbsym r cflags0 10 c
.dbsym r Data 16 pc
.dbend
.dbfunc e UARTPeekDataFromTxBuff _UARTPeekDataFromTxBuff fc
; cflags0 -> R10
; pData -> R16,R17
.even
_UARTPeekDataFromTxBuff::
st -y,R10
.dbline -1
.dbline 247
; }
;
; /***********************************************************
; * 函數(shù)說明:首數(shù)據(jù)察看函數(shù) *
; * 輸入: 存儲(chǔ)數(shù)據(jù)地址的指針 *
; * 輸出: 取值是否成功 *
; * 調(diào)用函數(shù):五 *
; ***********************************************************/
; BOOL UARTPeekDataFromTxBuff(uint8 *pData)
; {
.dbline 248
; SAFE_CODE_PERFORMANCE
.dbline 248
in R10,0x3f
.dbline 248
cli
.dbline 248
lds R2,_UARTTxBuffTail
lds R3,_UARTTxBuffTail+1
lds R4,_UARTTxBuffHead
lds R5,_UARTTxBuffHead+1
cp R4,R2
cpc R5,R3
brne L20
X11:
lds R2,_UARTTxBuffCounter
lds R3,_UARTTxBuffCounter+1
tst R2
brne L20
tst R3
brne L20
X12:
.dbline 248
.dbline 248
sei
.dbline 248
clr R16
rjmp L19
L20:
.dbline 248
ldi R24,<_UARTTxBuff
ldi R25,>_UARTTxBuff
lds R30,_UARTTxBuffHead
lds R31,_UARTTxBuffHead+1
add R30,R24
adc R31,R25
ldd R2,z+0
movw R30,R16
std z+0,R2
.dbline 248
.dbline 248
out 0x3f,R10
.dbline 248
.dbline 258
; (
; if ((UARTTxBuffHead == UARTTxBuffTail)
; && (UARTTxBuffCounter == 0))
; {
; SEI();
; return FALSE;
; }
; (*pData) = UARTTxBuff[UARTTxBuffHead];
; )
; return TRUE;
ldi R16,1
.dbline -2
L19:
.dbline 0 ; func end
ld R10,y+
ret
.dbsym r cflags0 10 c
.dbsym r pData 16 pc
.dbend
.dbfunc e UARTaddDataToTxBuff _UARTaddDataToTxBuff fc
; cflags0 -> R10
; Data -> R16
.even
_UARTaddDataToTxBuff::
st -y,R10
.dbline -1
.dbline 268
; }
;
; /***********************************************************
; * 函數(shù)說明:向通訊輸出緩沖區(qū)添加數(shù)據(jù)函數(shù) *
; * 輸入: 需要發(fā)送的數(shù)據(jù) *
; * 輸出: 無 *
; * 調(diào)用函數(shù):無 *
; ***********************************************************/
; BOOL UARTaddDataToTxBuff(uint8 Data)
; {
.dbline 270
;
; SAFE_CODE_PERFORMANCE
.dbline 270
in R10,0x3f
.dbline 270
cli
.dbline 270
lds R2,_UARTTxBuffTail
lds R3,_UARTTxBuffTail+1
lds R4,_UARTTxBuffHead
lds R5,_UARTTxBuffHead+1
cp R4,R2
cpc R5,R3
brne L23
X13:
lds R24,_UARTTxBuffCounter
lds R25,_UARTTxBuffCounter+1
cpi R24,64
ldi R30,0
cpc R25,R30
brne L23
X14:
.dbline 270
.dbline 270
sei
.dbline 270
clr R16
rjmp L22
L23:
.dbline 270
lds R2,_UARTTxBuffTail
lds R3,_UARTTxBuffTail+1
movw R24,R2
adiw R24,1
sts _UARTTxBuffTail+1,R25
sts _UARTTxBuffTail,R24
ldi R24,<_UARTTxBuff
ldi R25,>_UARTTxBuff
movw R30,R2
add R30,R24
adc R31,R25
std z+0,R16
.dbline 270
lds R24,_UARTTxBuffCounter
lds R25,_UARTTxBuffCounter+1
adiw R24,1
sts _UARTTxBuffCounter+1,R25
sts _UARTTxBuffCounter,R24
.dbline 270
lds R24,_UARTTxBuffTail
lds R25,_UARTTxBuffTail+1
cpi R24,64
ldi R30,0
cpc R25,R30
brne L25
X15:
.dbline 270
.dbline 270
clr R2
clr R3
sts _UARTTxBuffTail+1,R3
sts _UARTTxBuffTail,R2
.dbline 270
L25:
.dbline 270
.dbline 270
out 0x3f,R10
.dbline 287
; (
; if ((UARTTxBuffHead == UARTTxBuffTail)
; && (UARTTxBuffCounter == SERIAL_TX_BUFF_SIZE))
; {
; SEI();
; return FALSE;
; }
; UARTTxBuff[UARTTxBuffTail++] = Data;
;
; UARTTxBuffCounter ++;
;
; if (UARTTxBuffTail == SERIAL_TX_BUFF_SIZE)
; {
; UARTTxBuffTail = 0;
; }
; )
; return TRUE;
ldi R16,1
.dbline -2
L22:
.dbline 0 ; func end
ld R10,y+
ret
.dbsym r cflags0 10 c
.dbsym r Data 16 c
.dbend
.dbfunc e PROC_Serial_Transmitter _PROC_Serial_Transmitter fc
; cflags0 -> R10
; cTransmitByte -> y+0
.even
_PROC_Serial_Transmitter::
st -y,R10
sbiw R28,1
.dbline -1
.dbline 298
; }
;
; #ifdef _USE_SERIAL_TX_TRANSMITTER_PROC
; /***********************************************************
; * 函數(shù)說明:串行發(fā)送進(jìn)程 *
; * 輸入: 無 *
; * 輸出: 是否繼續(xù)執(zhí)行 *
; * 調(diào)用函數(shù):UARTgetDataFromTxBuff() *
; ***********************************************************/
; BOOL PROC_Serial_Transmitter(void)
; {
.dbline 299
; uint8 cTransmitByte = 0;
clr R2
std y+0,R2
.dbline 301
;
; SAFE_CODE_PERFORMANCE
.dbline 301
in R10,0x3f
.dbline 301
cli
.dbline 301
lds R2,_g_bIfSerialTransmitCompleted
tst R2
breq L28
X16:
.dbline 301
.dbline 301
movw R16,R28
rcall _UARTgetDataFromTxBuff
tst R16
brne L30
X17:
.dbline 301
.dbline 301
out 0x3f,R10
.dbline 301
ldi R16,1
rjmp L27
L30:
.dbline 301
.dbline 301
.dbline 301
clr R2
sts _g_bIfSerialTransmitCompleted,R2
.dbline 301
ldd R2,y+0
sts 198,R2
.dbline 301
L28:
.dbline 301
.dbline 301
out 0x3f,R10
.dbline 301
.dbline 321
; (
; if (g_bIfSerialTransmitCompleted)
; {
; if (!UARTgetDataFromTxBuff(&cTransmitByte))
; {
; EXIT_SAFE_CODE
; SERIAL_DISABLE_WRITE
; return TRUE;
; }
; else
; {
; SERIAL_ENABLE_WRITE
; }
; g_bIfSerialTransmitCompleted = FALSE;
; UDR_PORT = cTransmitByte;
; }
; )
;
;
; return TRUE;
ldi R16,1
.dbline -2
L27:
.dbline 0 ; func end
adiw R28,1
ld R10,y+
ret
.dbsym r cflags0 10 c
.dbsym l cTransmitByte 0 c
.dbend
.area bss(ram, con, rel)
.dbfile E:\單片機(jī)\ROOBCO~1\全向定位系統(tǒng)\坐標(biāo)轉(zhuǎn)換模塊\相對(duì)定位模塊測(cè)試版\Relative_Locate_Module\RD_UseSerialBuff.c
_UARTTxBuff:
.blkb 64
.dbsym s UARTTxBuff _UARTTxBuff A[64:64]c
_UARTRxBuff:
.blkb 32
.dbsym s UARTRxBuff _UARTRxBuff A[32:32]c
; }
; #endif
;
; #endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -