Initial import of the bootloader code
[bootloader] / mybootload.X / spbrgselect.inc
CommitLineData
9c66c9ff
JM
1RoundResult SET 0 ; Rounding function. RoundResult = Round(aa/bb)\r
2Round macro aa,bb\r
3 LOCAL rr = aa/bb\r
4 LOCAL d1 = aa - rr*bb\r
5 LOCAL d2 = (rr+1)*bb - aa\r
6RoundResult = rr\r
7 if d1 >= d2\r
8RoundResult++\r
9 endif\r
10 endm\r
11\r
12AbsResult SET 0\r
13Abs macro nr\r
14 if nr>=0\r
15AbsResult = nr\r
16 else\r
17AbsResult = -nr\r
18 endif\r
19 endm\r
20 \r
21 Round xtal,(16*baud)\r
22spbrg_value EQU RoundResult-1\r
23\r
24 Round xtal,(16*(spbrg_value+1))\r
25baud_real EQU RoundResult\r
26 Abs(baud_real-baud)\r
27errpercent EQU AbsResult*100/baud\r
28 if errpercent > 4\r
29 ERROR big error in baudrate: #v(errpercent)%\r
30 endif\r
31 if errpercent >= 2\r
32 messg baudrate not exact: #v(errpercent)%\r
33 endif