HWA
Bare metal programming with style
cta_1.h
Go to the documentation of this file.
1
2
/* This file is part of the HWA project.
3
* Copyright (c) 2017 Christophe Duparquet.
4
* All rights reserved. Read LICENSE.TXT for details.
5
*/
6
12
/* Load the channels implementation definitions
13
*/
14
#include "
cca_1.h
"
15
47
#define hw_class__cta
48
49
#define hw__cta_cr1 _r16, 0x00, 0x03FF, 0
50
#define hw__cta_cr2 _r16, 0x04, 0x00F8, 0
51
#define hw__cta_smcr _r16, 0x08, 0xFFF7, 0
52
#define hw__cta_dier _r16, 0x0C, 0x5F5F, 0
53
#define hw__cta_sr _r16, 0x10, 0x1E7F, 0
54
#define hw__cta_egr _r16, 0x14, 0x005F, 0
55
#define hw__cta_ccmr1 _r16, 0x18, 0xFFFF, 0
56
#define hw__cta_ccmr2 _r16, 0x1C, 0xFFFF, 0
57
#define hw__cta_ccer _r16, 0x20, 0x3333, 0
58
#define hw__cta_cnt _r16, 0x24, 0xFFFF, 0
59
#define hw__cta_psc _r16, 0x28, 0xFFFF, 0
60
#define hw__cta_arr _r16, 0x2C, 0xFFFF, 0
61
#define hw__cta_ccr1 _r16, 0x34, 0xFFFF, 0
62
#define hw__cta_ccr2 _r16, 0x38, 0xFFFF, 0
63
#define hw__cta_ccr3 _r16, 0x3C, 0xFFFF, 0
64
#define hw__cta_ccr4 _r16, 0x40, 0xFFFF, 0
65
#define hw__cta_dcr _r16, 0x48, 0x1F1F, 0
66
#define hw__cta_dmar _r16, 0x4C, 0xFFFF, 0
67
68
#define hw__cta_ckd _cb1, cr1, 2, 8
69
#define hw__cta_arpe _cb1, cr1, 1, 7
70
#define hw__cta_cms _cb1, cr1, 2, 5
71
#define hw__cta_dir _cb1, cr1, 1, 4
72
#define hw__cta_cmsdir _cb1, cr1, 3, 4 // Convenient
73
#define hw__cta_opm _cb1, cr1, 1, 3
74
#define hw__cta_cmsdiropm _cb1, cr1, 4, 3 // Convenient
75
#define hw__cta_urs _cb1, cr1, 1, 2
76
#define hw__cta_udis _cb1, cr1, 1, 1
77
#define hw__cta_cen _cb1, cr1, 1, 0
78
79
#define hw__cta_ti1s _cb1, cr2, 1, 7
80
#define hw__cta_mms _cb1, cr2, 3, 4
81
#define hw__cta_ccds _cb1, cr2, 1, 3
82
83
#define hw__cta_etp _cb1, smcr, 1, 15
84
#define hw__cta_ece _cb1, smcr, 1, 14
85
#define hw__cta_etps _cb1, smcr, 2, 12
86
#define hw__cta_etf _cb1, smcr, 4, 8
87
#define hw__cta_msm _cb1, smcr, 1, 7
88
#define hw__cta_ts _cb1, smcr, 3, 4
89
#define hw__cta_sms _cb1, smcr, 3, 0
90
91
#define hw__cta_tde _cb1, dier, 1, 14
92
#define hw__cta_cc4de _cb1, dier, 1, 12
93
#define hw__cta_cc3de _cb1, dier, 1, 11
94
#define hw__cta_cc2de _cb1, dier, 1, 10
95
#define hw__cta_cc1de _cb1, dier, 1, 9
96
#define hw__cta_ude _cb1, dier, 1, 8
97
#define hw__cta_tie _cb1, dier, 1, 6
98
#define hw__cta_cc4ie _cb1, dier, 1, 4
99
#define hw__cta_cc3ie _cb1, dier, 1, 3
100
#define hw__cta_cc2ie _cb1, dier, 1, 2
101
#define hw__cta_cc1ie _cb1, dier, 1, 1
102
#define hw__cta_uie _cb1, dier, 1, 0
103
104
#define hw__cta_cc4of _cb1, sr, 1, 12
105
#define hw__cta_cc3of _cb1, sr, 1, 11
106
#define hw__cta_cc2of _cb1, sr, 1, 10
107
#define hw__cta_cc1of _cb1, sr, 1, 9
108
#define hw__cta_tif _cb1, sr, 1, 6
109
#define hw__cta_cc4if _cb1, sr, 1, 4
110
#define hw__cta_cc3if _cb1, sr, 1, 3
111
#define hw__cta_cc2if _cb1, sr, 1, 2
112
#define hw__cta_cc1if _cb1, sr, 1, 1
113
#define hw__cta_uif _cb1, sr, 1, 0
114
115
#define hw__cta_cc4p _cb1, ccer, 1, 13
116
#define hw__cta_cc4e _cb1, ccer, 1, 12
117
#define hw__cta_cc3p _cb1, ccer, 1, 9
118
#define hw__cta_cc3e _cb1, ccer, 1, 8
119
#define hw__cta_cc2p _cb1, ccer, 1, 5
120
#define hw__cta_cc2e _cb1, ccer, 1, 4
121
#define hw__cta_cc1p _cb1, ccer, 1, 1
122
#define hw__cta_cc1e _cb1, ccer, 1, 0
123
124
#define hw__cta_oc2ce _cb1, ccmr1, 1, 15
125
#define hw__cta_oc2m _cb1, ccmr1, 3, 12
126
#define hw__cta_ic2f _cb1, ccmr1, 4, 12
127
#define hw__cta_oc2pe _cb1, ccmr1, 1, 11
128
#define hw__cta_oc2fe _cb1, ccmr1, 1, 10
129
#define hw__cta_ic2psc _cb1, ccmr1, 2, 10
130
#define hw__cta_cc2s _cb1, ccmr1, 2, 8
131
132
#define hw__cta_oc1ce _cb1, ccmr1, 1, 7
133
#define hw__cta_oc1m _cb1, ccmr1, 3, 4
134
#define hw__cta_ic1f _cb1, ccmr1, 4, 4
135
#define hw__cta_oc1pe _cb1, ccmr1, 1, 3
136
#define hw__cta_oc1fe _cb1, ccmr1, 1, 2
137
#define hw__cta_ic1psc _cb1, ccmr1, 2, 2
138
#define hw__cta_cc1s _cb1, ccmr1, 2, 0
139
140
#define hw__cta_oc4ce _cb1, ccmr2, 1, 15
141
#define hw__cta_oc4m _cb1, ccmr2, 3, 12
142
#define hw__cta_ic4f _cb1, ccmr2, 4, 12
143
#define hw__cta_oc4pe _cb1, ccmr2, 1, 11
144
#define hw__cta_oc4fe _cb1, ccmr2, 1, 10
145
#define hw__cta_ic4psc _cb1, ccmr2, 2, 10
146
#define hw__cta_cc4s _cb1, ccmr2, 2, 8
147
148
#define hw__cta_oc3ce _cb1, ccmr2, 1, 7
149
#define hw__cta_oc3m _cb1, ccmr2, 3, 4
150
#define hw__cta_ic3f _cb1, ccmr2, 4, 4
151
#define hw__cta_oc3pe _cb1, ccmr2, 1, 3
152
#define hw__cta_oc3fe _cb1, ccmr2, 1, 2
153
#define hw__cta_ic3psc _cb1, ccmr2, 2, 2
154
#define hw__cta_cc3s _cb1, ccmr2, 2, 0
155
156
/* Relatives
157
*/
158
#define hw__cta_prescaler _cb1, psc, 16, 0
159
#define hw__cta_reload _cb1, arr, 16, 0
160
161
#define hw__cta_irq _irq, uie, uif, 0 // Clear flag writing 0 (rc_w0)
162
163
/* Generate relatives for channels:
164
* _cca,(counterX,channelY),(Y)
165
*/
166
#define hw__cta_ , _hw_ctarl
167
168
#define _hw_ctarl(o,r,d) HW_BED(_hw_ctarl,_hw__cta_##r,o,r)
169
#define _hw_ctarl0(o,r,...) HW_E(HW_EM_OO(o,r))
170
#define _hw_ctarl1(o,r,c,...) c,(o,r),(__VA_ARGS__)
171
172
#define _hw__cta_channel1 _cca, 1
173
#define _hw__cta_channel2 _cca, 2
174
#define _hw__cta_channel3 _cca, 3
175
#define _hw__cta_channel4 _cca, 4
176
177
178
#if !defined __ASSEMBLER__
179
180
typedef
struct
{
181
hwa_r16_t cr1 ;
182
hwa_r16_t cr2 ;
183
hwa_r16_t smcr ;
184
hwa_r16_t dier ;
185
hwa_r16_t egr ;
186
hwa_r16_t ccmr1 ;
187
hwa_r16_t ccmr2 ;
188
hwa_r16_t ccer ;
189
hwa_r16_t cnt ;
190
hwa_r16_t psc ;
191
hwa_r16_t arr ;
192
hwa_r16_t ccr1 ;
193
hwa_r16_t ccr2 ;
194
hwa_r16_t ccr3 ;
195
hwa_r16_t ccr4 ;
196
} hwa_cta_t ;
197
198
#endif
cca_1.h
STM32 capture-compare channel.
Generated for HWA by
1.8.6