/
clocks.h
275 lines (272 loc) · 8 KB
/
clocks.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
/*
* This file will be overwritten by genclocks.pl.
* Make a backup copy if you need to tune any values.
*/
#ifndef _CLOCKS_H
#define _CLOCKS_H
#if (F_CPU == 1000000)
#define CLOCK_SIRC_START 9
#define CLOCK_SIRC_START_MIN 6
#define CLOCK_SIRC_START_MAX 12
#define CLOCK_SIRC_LONG 4
#define CLOCK_SIRC_LONG_MIN 3
#define CLOCK_SIRC_LONG_MAX 6
#define CLOCK_SIRC_SHORT 2
#define CLOCK_SIRC_SHORT_MIN 1
#define CLOCK_SIRC_SHORT_MAX 3
#define CLOCK_SIRC_ACK 2
#define CLOCK_SIRC_ACK_MIN 1
#define CLOCK_SIRC_ACK_MAX 3
#define CLOCK_NEC_START 35
#define CLOCK_NEC_START_MIN 23
#define CLOCK_NEC_START_MAX 46
#define CLOCK_NEC_ACK 1
#define CLOCK_NEC_ACK_MIN 1
#define CLOCK_NEC_ACK_MAX 2
#define CLOCK_NEC_MODE_CMD 17
#define CLOCK_NEC_MODE_CMD_MIN 12
#define CLOCK_NEC_MODE_CMD_MAX 23
#define CLOCK_NEC_MODE_REP 8
#define CLOCK_NEC_MODE_REP_MIN 6
#define CLOCK_NEC_MODE_REP_MAX 11
#define CLOCK_NEC_LONG 6
#define CLOCK_NEC_LONG_MIN 4
#define CLOCK_NEC_LONG_MAX 9
#define CLOCK_NEC_SHORT 2
#define CLOCK_NEC_SHORT_MIN 1
#define CLOCK_NEC_SHORT_MAX 3
#define CLOCK_TIMEOUT_START 46
#define CLOCK_TIMEOUT_START_MIN 31
#define CLOCK_TIMEOUT_START_MAX 62
#define CLOCK_TIMEOUT_SIRC 6
#define CLOCK_TIMEOUT_SIRC_MIN 4
#define CLOCK_TIMEOUT_SIRC_MAX 8
#define CLOCK_TIMEOUT_NEC 8
#define CLOCK_TIMEOUT_NEC_MIN 5
#define CLOCK_TIMEOUT_NEC_MAX 11
#define CLOCK_WAIT_1MS 3
#define CLOCK_WAIT_10MS 39
#define CLOCK_DIV 256
#elif (F_CPU == 1200000)
#define CLOCK_SIRC_START 11
#define CLOCK_SIRC_START_MIN 7
#define CLOCK_SIRC_START_MAX 14
#define CLOCK_SIRC_LONG 5
#define CLOCK_SIRC_LONG_MIN 3
#define CLOCK_SIRC_LONG_MAX 7
#define CLOCK_SIRC_SHORT 2
#define CLOCK_SIRC_SHORT_MIN 1
#define CLOCK_SIRC_SHORT_MAX 3
#define CLOCK_SIRC_ACK 2
#define CLOCK_SIRC_ACK_MIN 1
#define CLOCK_SIRC_ACK_MAX 3
#define CLOCK_NEC_START 42
#define CLOCK_NEC_START_MIN 28
#define CLOCK_NEC_START_MAX 56
#define CLOCK_NEC_ACK 2
#define CLOCK_NEC_ACK_MIN 1
#define CLOCK_NEC_ACK_MAX 2
#define CLOCK_NEC_MODE_CMD 21
#define CLOCK_NEC_MODE_CMD_MIN 14
#define CLOCK_NEC_MODE_CMD_MAX 28
#define CLOCK_NEC_MODE_REP 10
#define CLOCK_NEC_MODE_REP_MIN 7
#define CLOCK_NEC_MODE_REP_MAX 14
#define CLOCK_NEC_LONG 8
#define CLOCK_NEC_LONG_MIN 5
#define CLOCK_NEC_LONG_MAX 10
#define CLOCK_NEC_SHORT 3
#define CLOCK_NEC_SHORT_MIN 2
#define CLOCK_NEC_SHORT_MAX 3
#define CLOCK_TIMEOUT_START 56
#define CLOCK_TIMEOUT_START_MIN 37
#define CLOCK_TIMEOUT_START_MAX 74
#define CLOCK_TIMEOUT_SIRC 7
#define CLOCK_TIMEOUT_SIRC_MIN 5
#define CLOCK_TIMEOUT_SIRC_MAX 10
#define CLOCK_TIMEOUT_NEC 10
#define CLOCK_TIMEOUT_NEC_MIN 6
#define CLOCK_TIMEOUT_NEC_MAX 13
#define CLOCK_WAIT_1MS 4
#define CLOCK_WAIT_10MS 46
#define CLOCK_DIV 256
#elif (F_CPU == 8000000)
#define CLOCK_SIRC_START 75
#define CLOCK_SIRC_START_MIN 50
#define CLOCK_SIRC_START_MAX 99
#define CLOCK_SIRC_LONG 37
#define CLOCK_SIRC_LONG_MIN 25
#define CLOCK_SIRC_LONG_MAX 49
#define CLOCK_SIRC_SHORT 18
#define CLOCK_SIRC_SHORT_MIN 12
#define CLOCK_SIRC_SHORT_MAX 24
#define CLOCK_SIRC_ACK 18
#define CLOCK_SIRC_ACK_MIN 12
#define CLOCK_SIRC_ACK_MAX 24
#define CLOCK_NEC_START 281
#define CLOCK_NEC_START_MIN 188
#define CLOCK_NEC_START_MAX 374
#define CLOCK_NEC_ACK 15
#define CLOCK_NEC_ACK_MIN 10
#define CLOCK_NEC_ACK_MAX 25
#define CLOCK_NEC_MODE_CMD 143
#define CLOCK_NEC_MODE_CMD_MIN 96
#define CLOCK_NEC_MODE_CMD_MAX 191
#define CLOCK_NEC_MODE_REP 71
#define CLOCK_NEC_MODE_REP_MIN 48
#define CLOCK_NEC_MODE_REP_MAX 95
#define CLOCK_NEC_LONG 55
#define CLOCK_NEC_LONG_MIN 36
#define CLOCK_NEC_LONG_MAX 73
#define CLOCK_NEC_SHORT 20
#define CLOCK_NEC_SHORT_MIN 13
#define CLOCK_NEC_SHORT_MAX 26
#define CLOCK_TIMEOUT_START 375
#define CLOCK_TIMEOUT_START_MIN 251
#define CLOCK_TIMEOUT_START_MAX 498
#define CLOCK_TIMEOUT_SIRC 53
#define CLOCK_TIMEOUT_SIRC_MIN 35
#define CLOCK_TIMEOUT_SIRC_MAX 70
#define CLOCK_TIMEOUT_NEC 68
#define CLOCK_TIMEOUT_NEC_MIN 46
#define CLOCK_TIMEOUT_NEC_MAX 91
#define CLOCK_WAIT_1MS 31
#define CLOCK_WAIT_10MS 312
#define CLOCK_DIV 256
#define CLOCK_16BIT 1
#elif (F_CPU == 9600000)
#define CLOCK_SIRC_START 90
#define CLOCK_SIRC_START_MIN 60
#define CLOCK_SIRC_START_MAX 119
#define CLOCK_SIRC_LONG 45
#define CLOCK_SIRC_LONG_MIN 30
#define CLOCK_SIRC_LONG_MAX 59
#define CLOCK_SIRC_SHORT 22
#define CLOCK_SIRC_SHORT_MIN 15
#define CLOCK_SIRC_SHORT_MAX 29
#define CLOCK_SIRC_ACK 22
#define CLOCK_SIRC_ACK_MIN 15
#define CLOCK_SIRC_ACK_MAX 29
#define CLOCK_NEC_START 337
#define CLOCK_NEC_START_MIN 226
#define CLOCK_NEC_START_MAX 448
#define CLOCK_NEC_ACK 18
#define CLOCK_NEC_ACK_MIN 12
#define CLOCK_NEC_ACK_MAX 23
#define CLOCK_NEC_MODE_CMD 172
#define CLOCK_NEC_MODE_CMD_MIN 115
#define CLOCK_NEC_MODE_CMD_MAX 229
#define CLOCK_NEC_MODE_REP 86
#define CLOCK_NEC_MODE_REP_MIN 57
#define CLOCK_NEC_MODE_REP_MAX 114
#define CLOCK_NEC_LONG 66
#define CLOCK_NEC_LONG_MIN 44
#define CLOCK_NEC_LONG_MAX 87
#define CLOCK_NEC_SHORT 24
#define CLOCK_NEC_SHORT_MIN 16
#define CLOCK_NEC_SHORT_MAX 31
#define CLOCK_TIMEOUT_START 450
#define CLOCK_TIMEOUT_START_MIN 301
#define CLOCK_TIMEOUT_START_MAX 598
#define CLOCK_TIMEOUT_SIRC 63
#define CLOCK_TIMEOUT_SIRC_MIN 42
#define CLOCK_TIMEOUT_SIRC_MAX 84
#define CLOCK_TIMEOUT_NEC 82
#define CLOCK_TIMEOUT_NEC_MIN 55
#define CLOCK_TIMEOUT_NEC_MAX 109
#define CLOCK_WAIT_1MS 37
#define CLOCK_WAIT_10MS 375
#define CLOCK_DIV 256
#define CLOCK_16BIT 1
#elif (F_CPU == 16000000)
#define CLOCK_SIRC_START 150
#define CLOCK_SIRC_START_MIN 100
#define CLOCK_SIRC_START_MAX 199
#define CLOCK_SIRC_LONG 75
#define CLOCK_SIRC_LONG_MIN 50
#define CLOCK_SIRC_LONG_MAX 99
#define CLOCK_SIRC_SHORT 37
#define CLOCK_SIRC_SHORT_MIN 25
#define CLOCK_SIRC_SHORT_MAX 49
#define CLOCK_SIRC_ACK 37
#define CLOCK_SIRC_ACK_MIN 25
#define CLOCK_SIRC_ACK_MAX 49
#define CLOCK_NEC_START 562
#define CLOCK_NEC_START_MIN 376
#define CLOCK_NEC_START_MAX 748
#define CLOCK_NEC_ACK 30
#define CLOCK_NEC_ACK_MIN 20
#define CLOCK_NEC_ACK_MAX 45
#define CLOCK_NEC_MODE_CMD 287
#define CLOCK_NEC_MODE_CMD_MIN 192
#define CLOCK_NEC_MODE_CMD_MAX 382
#define CLOCK_NEC_MODE_REP 143
#define CLOCK_NEC_MODE_REP_MIN 96
#define CLOCK_NEC_MODE_REP_MAX 191
#define CLOCK_NEC_LONG 110
#define CLOCK_NEC_LONG_MIN 73
#define CLOCK_NEC_LONG_MAX 146
#define CLOCK_NEC_SHORT 40
#define CLOCK_NEC_SHORT_MIN 26
#define CLOCK_NEC_SHORT_MAX 53
#define CLOCK_TIMEOUT_START 750
#define CLOCK_TIMEOUT_START_MIN 502
#define CLOCK_TIMEOUT_START_MAX 997
#define CLOCK_TIMEOUT_SIRC 106
#define CLOCK_TIMEOUT_SIRC_MIN 71
#define CLOCK_TIMEOUT_SIRC_MAX 141
#define CLOCK_TIMEOUT_NEC 137
#define CLOCK_TIMEOUT_NEC_MIN 92
#define CLOCK_TIMEOUT_NEC_MAX 182
#define CLOCK_WAIT_1MS 62
#define CLOCK_WAIT_10MS 625
#define CLOCK_DIV 256
#define CLOCK_16BIT 1
#elif (F_CPU == 20000000)
#define CLOCK_SIRC_START 187
#define CLOCK_SIRC_START_MIN 125
#define CLOCK_SIRC_START_MAX 249
#define CLOCK_SIRC_LONG 93
#define CLOCK_SIRC_LONG_MIN 62
#define CLOCK_SIRC_LONG_MAX 124
#define CLOCK_SIRC_SHORT 46
#define CLOCK_SIRC_SHORT_MIN 31
#define CLOCK_SIRC_SHORT_MAX 62
#define CLOCK_SIRC_ACK 46
#define CLOCK_SIRC_ACK_MIN 31
#define CLOCK_SIRC_ACK_MAX 62
#define CLOCK_NEC_START 703
#define CLOCK_NEC_START_MIN 471
#define CLOCK_NEC_START_MAX 935
#define CLOCK_NEC_ACK 37
#define CLOCK_NEC_ACK_MIN 25
#define CLOCK_NEC_ACK_MAX 49
#define CLOCK_NEC_MODE_CMD 359
#define CLOCK_NEC_MODE_CMD_MIN 240
#define CLOCK_NEC_MODE_CMD_MAX 477
#define CLOCK_NEC_MODE_REP 179
#define CLOCK_NEC_MODE_REP_MIN 120
#define CLOCK_NEC_MODE_REP_MAX 238
#define CLOCK_NEC_LONG 137
#define CLOCK_NEC_LONG_MIN 92
#define CLOCK_NEC_LONG_MAX 182
#define CLOCK_NEC_SHORT 50
#define CLOCK_NEC_SHORT_MIN 33
#define CLOCK_NEC_SHORT_MAX 66
#define CLOCK_TIMEOUT_START 937
#define CLOCK_TIMEOUT_START_MIN 628
#define CLOCK_TIMEOUT_START_MAX 1246
#define CLOCK_TIMEOUT_SIRC 132
#define CLOCK_TIMEOUT_SIRC_MIN 88
#define CLOCK_TIMEOUT_SIRC_MAX 176
#define CLOCK_TIMEOUT_NEC 171
#define CLOCK_TIMEOUT_NEC_MIN 115
#define CLOCK_TIMEOUT_NEC_MAX 228
#define CLOCK_WAIT_1MS 78
#define CLOCK_WAIT_10MS 781
#define CLOCK_DIV 256
#define CLOCK_16BIT 1
#else
#warning CPU clock frequency not supported. Please run genclocks --freq <Your F_CPU> or add entries to clocks.h yourself.
#endif
#endif /*_CLOCKS_H*/