OSDN Git Service

317627f16e129f8201cf642413aefcc1da1d829a
[fast-forth/master.git] / MSP430-FORTH / CHNGBAUD.f
1
2 ; ------------
3 ; CHNGBAUD.f
4 ; ------------
5 \
6 \ to see kernel options, download FastForthSpecs.f
7 \ FastForth kernel options: nothing
8 \
9 \ TARGET SELECTION
10 \ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
11 \ MSP_EXP430FR4133  MSP_EXP430FR2433    MSP_EXP430FR2355    CHIPSTICK_FR2433
12 \
13
14 : BAD_MHz
15     1 ABORT"  only for 4,8,16,24 MHz MCLK!"
16 ;
17 : BAD_SPEED
18 FREQ_KHZ @ 0 1000 UM/MOD
19 SPACE 27 EMIT ." [7m"   \ set reverse video
20 ." with MCLK = " .
21 1 ABORT" MHz? don't dream! "
22 ;
23
24 : <> = 0= ;
25
26 : CHNGBAUD                  \ only for 8, 16, 24 MHz
27 PWR_STATE                   \ to remove this created word (garbage collector)
28 FREQ_KHZ @ >R               \ r-- target MCLCK frequency in MHz
29 ECHO CR
30 ."    choose your baudrate:" CR
31 ."    0 --> 6 MBds" CR
32 ."    1 --> 5 MBds" CR
33 ."    2 --> 4 MBds" CR      \ linux driver max speed
34 ."    3 --> 2457600 Bds" CR
35 ."    4 --> 921600 Bds" CR
36 ."    5 --> 230400 Bds" CR
37 ."    6 --> 115200 Bds" CR
38 ."    other --> abort" CR
39 ."    your choice: "
40 KEY
41
42 #48 - ?DUP 0=               \ select 6MBds ?
43 IF  ." 6 MBds"              \ add this to the current line
44     R@ #24000 <              \ < 24MHz ?
45     IF  R@ BAD_SPEED
46     THEN
47     R@ #24000 <>             \ 24 MHz ?
48     IF  BAD_MHz             \ no: --> abort
49     THEN                
50     $4                      \ TERM_BRW
51     $0                      \ TERM_MCTLW
52 ELSE 1 - ?DUP 0=            \ select 5MBds ?
53     IF  ." 5 MBds"
54         R@ #16000 <         \ < 16MHz ?
55         IF  R@ BAD_SPEED    \ abort
56         THEN
57         R@ #16000 =
58         IF  $3              \ TERM_BRW
59             $2100           \ TERM_MCTLW
60         ELSE R@ #24000 <>
61             IF  BAD_MHz
62             THEN
63             $4              \ TERM_BRW
64             $EE00           \ TERM_MCTLW
65         THEN
66     ELSE 1 - ?DUP 0=            \ select 4MBds ?
67         IF  ." 4 MBds"
68             R@ #16000 <
69             IF  R@ BAD_SPEED    \ abort
70             THEN
71             R@ #16000 =
72                 IF  $4          \ TERM_BRW
73                     $0          \ TERM_MCTLW
74                 ELSE R@ #24000 <>
75                     IF  BAD_MHz
76                     THEN
77                     $6          \ TERM_BRW
78                     $0          \ TERM_MCTLW
79                 THEN
80         ELSE 1 - ?DUP 0=            \ select 2457600 ?
81             IF  ." 2457600 Bds"
82                 R@ #4000 =           \ 4MHz ?
83                 IF  R@ BAD_SPEED    \ abort
84                 THEN
85                 R@ #8000 =
86                 IF  $3              \ TERM_BRW
87                     $4400           \ TERM_MCTLW
88                 ELSE R@ #16000 =
89                     IF  $6          \ TERM_BRW
90                         $AA00       \ TERM_MCTLW
91                     ELSE R@ #24000 <>
92                         IF  BAD_MHz
93                         THEN
94                         $9          \ TERM_BRW
95                         $DD00       \ TERM_MCTLW
96                     THEN
97                 THEN
98             ELSE 1 - ?DUP 0=                \ select 921600 ?
99                 IF  ." 921600 Bds"
100                     R@ #4000 =               \ 4MHz ?
101                     IF  4                   \ TERM_BRW
102                         $4900               \ TERM_MCTLW
103                     ELSE
104                         R@ #8000 =
105                         IF  8               \ TERM_BRW
106                             $D600           \ TERM_MCTLW
107                         ELSE R@ #16000 =
108                             IF  $11         \ TERM_BRW
109                                 $4A00       \ TERM_MCTLW
110                             ELSE R@ #24000 <>
111                                 IF  BAD_MHz
112                                 THEN
113                                 $1          \ TERM_BRW
114                                 $00A1       \ TERM_MCTLW
115                             THEN
116                         THEN
117                     THEN
118                 ELSE 1 - ?DUP 0=                \ select 230400 ?
119                     IF  ." 230400 Bds"
120                         R@ #4000  =
121                         IF  17                  \ TERM_BRW
122                             $4A00               \ TERM_MCTLW
123                         ELSE
124                             R@ #8000  =
125                             IF  2               \ TERM_BRW
126                                 $BB21           \ TERM_MCTLW
127                             ELSE R@ #16000 =
128                                 IF  4           \ TERM_BRW
129                                     $5551       \ TERM_MCTLW
130                                 ELSE R@ #24000 <>
131                                     IF  BAD_MHz
132                                     THEN
133                                     6           \ TERM_BRW
134                                     $0001       \ TERM_MCTLW
135                                 THEN
136                             THEN
137                         THEN
138                     ELSE 1 - ?DUP 0=                \ select 115200 ?
139                         IF  ." 115200 Bds"
140                             R@ #4000  =
141                             IF  2                   \ TERM_BRW
142                                 $BB21               \ TERM_MCTLW
143                             ELSE
144                                 R@ #8000  =
145                                 IF  4               \ TERM_BRW
146                                     $5551           \ TERM_MCTLW
147                                 ELSE R@ #16000 =
148                                     IF  8           \ TERM_BRW
149                                         $F7A1       \ TERM_MCTLW
150                                     ELSE R@ #24000 <>
151                                         IF  BAD_MHz
152                                         THEN
153                                         $0D         \ TERM_BRW
154                                         $4901       \ TERM_MCTLW
155                                     THEN
156                                 THEN
157                             THEN
158                         ELSE                    \ other selected 
159                             ." abort" CR ABORT
160                         THEN
161                     THEN
162                 THEN
163             THEN
164         THEN
165     THEN
166 THEN
167 TERMMCTLW_RST !             \ set UCAxMCTLW value in FRAM
168 TERMBRW_RST !               \ set UCAxBRW value in FRAM
169 R> DROP                     \ clear stacks
170 CR ."    Change baudrate in Teraterm, save its setup then reboot."
171 ;
172
173 CHNGBAUD