📄 spbrgselect.inc
字号:
RoundResult SET 0 ; Rounding function. RoundResult = Round(aa/bb)
Round macro aa,bb
LOCAL rr = aa/bb
LOCAL d1 = aa - rr*bb
LOCAL d2 = (rr+1)*bb - aa
RoundResult = rr
if d1 >= d2
RoundResult++
endif
endm
AbsResult SET 0
Abs macro nr
if nr>=0
AbsResult = nr
else
AbsResult = -nr
endif
endm
Round xtal,(16*baud)
spbrg_value EQU RoundResult-1
Round xtal,(16*(spbrg_value+1))
baud_real EQU RoundResult
Abs(baud_real-baud)
errpercent EQU AbsResult*100/baud
if errpercent > 4
ERROR big error in baudrate: #v(errpercent)%
endif
if errpercent >= 2
messg baudrate not exact: #v(errpercent)%
endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -