c7segrgb
2.0.0.0
Toggle main menu visibility
Main Page
Topics
Data Structures
Data Structures
Data Structure Index
Data Fields
All
Variables
Files
File List
Globals
All
Functions
Typedefs
Macros
c7segrgb_delays.h
Go to the documentation of this file.
1
16
#ifndef C7SEGRGB_DELAYS_H
17
#define C7SEGRGB_DELAYS_H
18
19
// Delay adjustment for specific systems.
20
// Adjusted specifically for NECTO v6.1.0 and mikroSDK v2.11.0.
21
#ifdef __MIKROC_AI__
22
#ifdef STM32F407ZG
23
/*< Adjusted for STM32F407ZG */
24
#define DELAY_TOH Delay_Cyc( 4 );
// ~400ns
25
#define DELAY_TOL Delay_Cyc( 7 );
// ~850ns
26
#define DELAY_T1H Delay_Cyc( 12 );
// ~820ns
27
#define DELAY_T1L
// ~390ns
28
#elif MK64FN1M0VDC12
29
/*< Adjusted for MK64FN1M0VDC12 */
30
#define DELAY_TOH Delay_Cyc( 3 );
// ~380ns
31
#define DELAY_TOL Delay_Cyc( 5 );
// ~870ns
32
#define DELAY_T1H Delay_Cyc( 8 );
// ~800ns
33
#define DELAY_T1L
// ~470ns
34
#elif TM4C129XNCZAD
35
/*< Adjusted for TM4C129XNCZAD */
36
#define DELAY_TOH
// ~400ns
37
#define DELAY_TOL
// ~860ns
38
#define DELAY_T1H Delay_Cyc( 4 );
// ~800ns
39
#define DELAY_T1L
// ~910ns
40
#elif PIC32MX795F512L
41
/*< Adjusted for PIC32MX795F512L */
42
#define DELAY_TOH \
43
asm nop; \
44
asm nop; \
45
asm nop; \
46
asm nop; \
47
asm nop; \
48
asm nop; \
49
asm nop; \
50
asm nop; \
51
asm nop; \
52
asm nop;
// ~430ns
53
#define DELAY_TOL
// ~900ns
54
#define DELAY_T1H Delay_Cyc( 4 );
// ~870ns
55
#define DELAY_T1L
// ~1000ns
56
#else
57
#error "Logic delays are not defined for the selected MCU"
58
#endif
59
#elif __clang__
60
#ifdef STM32F407ZG
61
/*< Adjusted for STM32F407ZG */
62
#define DELAY_TOH Delay_Cyc( 3 );
// ~420ns
63
#define DELAY_TOL Delay_Cyc( 6 );
// ~840ns
64
#define DELAY_T1H Delay_Cyc( 12 );
// ~840ns
65
#define DELAY_T1L asm("nop");
// ~410ns
66
#elif MK64
67
/*< Adjusted for MK64FN1M0VDC12 */
68
#define DELAY_TOH Delay_Cyc( 2 );
// ~360ns
69
#define DELAY_TOL Delay_Cyc( 4 );
// ~770ns
70
#define DELAY_T1H Delay_Cyc( 16 );
// ~830ns
71
#define DELAY_T1L
// ~500ns
72
#elif TM4C129
73
/*< Adjusted for TM4C129XNCZAD */
74
#define DELAY_TOH \
75
asm("nop"); \
76
asm("nop"); \
77
asm("nop"); \
78
asm("nop"); \
79
asm("nop"); \
80
asm("nop"); \
81
asm("nop"); \
82
asm("nop"); \
83
asm("nop"); \
84
asm("nop"); \
85
asm("nop"); \
86
asm("nop"); \
87
asm("nop"); \
88
asm("nop"); \
89
asm("nop"); \
90
asm("nop"); \
91
asm("nop"); \
92
asm("nop"); \
93
asm("nop"); \
94
asm("nop"); \
95
asm("nop"); \
96
asm("nop"); \
97
asm("nop"); \
98
asm("nop");
// ~380ns
99
#define DELAY_TOL \
100
asm("nop"); \
101
asm("nop"); \
102
asm("nop"); \
103
asm("nop"); \
104
asm("nop"); \
105
asm("nop"); \
106
asm("nop"); \
107
asm("nop"); \
108
asm("nop"); \
109
asm("nop"); \
110
asm("nop"); \
111
asm("nop"); \
112
asm("nop"); \
113
asm("nop"); \
114
asm("nop"); \
115
asm("nop"); \
116
asm("nop"); \
117
asm("nop"); \
118
asm("nop"); \
119
asm("nop"); \
120
asm("nop"); \
121
asm("nop"); \
122
asm("nop"); \
123
asm("nop");
// ~800ns
124
#define DELAY_T1H Delay_Cyc( 6 );
// ~840ns
125
#define DELAY_T1L
// ~700ns
126
#elif GD32VF103VBT6
127
/*< Adjusted for GD32VF103VBT6 */
128
#define DELAY_TOH \
129
asm("nop"); \
130
asm("nop"); \
131
asm("nop"); \
132
asm("nop"); \
133
asm("nop"); \
134
asm("nop"); \
135
asm("nop"); \
136
asm("nop"); \
137
asm("nop"); \
138
asm("nop"); \
139
asm("nop"); \
140
asm("nop"); \
141
asm("nop"); \
142
asm("nop"); \
143
asm("nop"); \
144
asm("nop"); \
145
asm("nop"); \
146
asm("nop"); \
147
asm("nop"); \
148
asm("nop"); \
149
asm("nop"); \
150
asm("nop"); \
151
asm("nop"); \
152
asm("nop");
// ~390ns
153
#define DELAY_TOL \
154
asm("nop"); \
155
asm("nop"); \
156
asm("nop"); \
157
asm("nop"); \
158
asm("nop"); \
159
asm("nop"); \
160
asm("nop"); \
161
asm("nop"); \
162
asm("nop"); \
163
asm("nop"); \
164
asm("nop"); \
165
asm("nop"); \
166
asm("nop"); \
167
asm("nop"); \
168
asm("nop"); \
169
asm("nop"); \
170
asm("nop"); \
171
asm("nop"); \
172
asm("nop"); \
173
asm("nop"); \
174
asm("nop"); \
175
asm("nop"); \
176
asm("nop"); \
177
asm("nop"); \
178
asm("nop"); \
179
asm("nop"); \
180
asm("nop"); \
181
asm("nop"); \
182
asm("nop"); \
183
asm("nop"); \
184
asm("nop"); \
185
asm("nop");
// ~800ns
186
#define DELAY_T1H Delay_Cyc( 3 );
// ~790ns
187
#define DELAY_T1L
// ~560ns
188
#else
189
#error "Logic delays are not defined for the selected MCU"
190
#endif
191
#elif __GNUC__
192
#ifdef STM32F407ZG
193
/*< Adjusted for STM32F407ZG */
194
#define DELAY_TOH Delay_Cyc( 2 );
// ~470ns
195
#define DELAY_TOL Delay_Cyc( 5 );
// ~860ns
196
#define DELAY_T1H Delay_Cyc( 10 );
// ~850ns
197
#define DELAY_T1L asm("nop");
// ~410ns
198
#elif MK64
199
/*< Adjusted for MK64FN1M0VDC12 */
200
#define DELAY_TOH \
201
asm("nop"); \
202
asm("nop"); \
203
asm("nop"); \
204
asm("nop"); \
205
asm("nop"); \
206
asm("nop"); \
207
asm("nop"); \
208
asm("nop"); \
209
asm("nop"); \
210
asm("nop"); \
211
asm("nop"); \
212
asm("nop"); \
213
asm("nop"); \
214
asm("nop"); \
215
asm("nop"); \
216
asm("nop"); \
217
asm("nop"); \
218
asm("nop"); \
219
asm("nop"); \
220
asm("nop"); \
221
asm("nop"); \
222
asm("nop"); \
223
asm("nop"); \
224
asm("nop"); \
225
asm("nop"); \
226
asm("nop"); \
227
asm("nop"); \
228
asm("nop"); \
229
asm("nop"); \
230
asm("nop"); \
231
asm("nop"); \
232
asm("nop");
// ~380ns
233
#define DELAY_TOL Delay_Cyc( 2 );
// ~830ns
234
#define DELAY_T1H Delay_Cyc( 16 );
// ~850ns
235
#define DELAY_T1L
// ~430ns
236
#elif TM4C129
237
/*< Adjusted for TM4C129XNCZAD */
238
#define DELAY_TOH
// ~440ns
239
#define DELAY_TOL
// ~990ns
240
#define DELAY_T1H Delay_Cyc( 2 );
// ~970ns
241
#define DELAY_T1L
// ~950ns
242
#elif GD32VF103VBT6
243
/*< Adjusted for GD32VF103VBT6 */
244
#define DELAY_TOH \
245
asm("nop"); \
246
asm("nop"); \
247
asm("nop"); \
248
asm("nop"); \
249
asm("nop"); \
250
asm("nop"); \
251
asm("nop"); \
252
asm("nop"); \
253
asm("nop"); \
254
asm("nop"); \
255
asm("nop"); \
256
asm("nop"); \
257
asm("nop"); \
258
asm("nop"); \
259
asm("nop"); \
260
asm("nop"); \
261
asm("nop"); \
262
asm("nop"); \
263
asm("nop"); \
264
asm("nop"); \
265
asm("nop"); \
266
asm("nop"); \
267
asm("nop"); \
268
asm("nop"); \
269
asm("nop"); \
270
asm("nop"); \
271
asm("nop"); \
272
asm("nop"); \
273
asm("nop"); \
274
asm("nop"); \
275
asm("nop"); \
276
asm("nop");
// ~420ns
277
#define DELAY_TOL Delay_Cyc( 2 );
// ~830ns
278
#define DELAY_T1H Delay_Cyc( 5 );
// ~850ns
279
#define DELAY_T1L
// ~460ns
280
#else
281
#error "Logic delays are not defined for the selected MCU"
282
#endif
283
#else
284
#error "Logic delays are not defined for the selected toolchain"
285
#endif
286
287
#endif
// C7SEGRGB_DELAYS_H