HWA
Bare metal programming with style
ica_2.h
Go to the documentation of this file.
1
2
/* This file is part of the HWA project.
3
* Copyright (c) 2012,2015 Christophe Duparquet.
4
* All rights reserved. Read LICENSE.TXT for details.
5
*/
6
32
/* TODO: complete this.
33
*/
34
#define hw_configure__ica , _hw_cfica
35
36
#define hw_ica_input_pin_icp , 1
37
#define hw_ica_input_acmp0 , 2
38
39
#define hw_ica_edge_falling , 1
40
#define hw_ica_edge_rising , 2
41
42
#define _hw_cfica_kw_edge , _hw_cfica_edge
43
//#define _hw_cfica_kw_ , _hw_cfica_
44
45
//_hw_cfica(counter1_capture0,counter1, 0,edge, falling,,);
46
#define _hw_cfica(o,ct,ic,k,...) \
47
HW_B(_hw_cficakw1_,_hw_cfica_kw_##k)(ct,k,__VA_ARGS__,)
48
49
#define _hw_cficakw1_0(ct,kw,...) HW_E(HW_EM_AL(k,(input,edge,filter)))
50
51
#define _hw_cficakw1_1(ct,kw,...) HW_A1(_hw_cfica_kw_##kw)(ct,__VA_ARGS__)
52
53
#define _hw_cfica_edge(ct,v,...) HW_B(_hw_cfica_vedge_,hw_ica_edge_##v)(ct,v,__VA_ARGS__)
54
#define _hw_cfica_vedge_0(ct,v,...) \
55
HW_E(HW_EM_VAL(v,edge,(falling,rising)))
56
#define _hw_cfica_vedge_1(ct,v,...) \
57
_hw_write(ct, ices, HW_A1(hw_ica_edge_##v)-1 ) HW_EOL(__VA_ARGS__)
58
59
75
#define hwa_configure__ica , _hwa_cfica
76
77
#define _hwa_cfica(o,ct,ic,k,...) \
78
do { HW_BW(_hwa_cfica_kinput_,input,k)(ct,k,__VA_ARGS__) } while(0)
79
80
#define _hwa_cfica_kinput_0(ct,k,...) \
81
HW_BW(_hwa_cfica_kedge_,edge,k)(ct,k,__VA_ARGS__) //HW_E(HW_EM_AN(k,input))
82
#define _hwa_cfica_kinput_1(ct,k,v,...) HW_B(_hwa_cfica_vinput_,hw_ica_input_##v)(ct,v,__VA_ARGS__)
83
#define _hwa_cfica_vinput_0(ct,v,...) HW_E(HW_EM_VAL(v,input,(pin_icp,acmp0)))
84
#define _hwa_cfica_vinput_1(ct,v,k,...) \
85
hwa->ct.capture0.config.input = HW_A1(hw_ica_input_##v); \
86
HW_BW(_hwa_cfica_kedge_,edge,k)(ct,k,__VA_ARGS__)
87
88
#define _hwa_cfica_kedge_0(ct,k,...) \
89
HW_BW(_hwa_cfica_kfilter_,filter,k)(ct,k,__VA_ARGS__) // HW_E(HW_EM_AN(k,edge))
90
91
#define _hwa_cfica_kedge_1(ct,k,v,...) \
92
HW_B(_hwa_cfica_vedge_,hw_ica_edge_##v)(ct,v,__VA_ARGS__)
93
94
#define _hwa_cfica_vedge_0(ct,v,...) HW_E(HW_EM_VAL(v,edge,(falling,rising)))
95
96
#define _hwa_cfica_vedge_1(ct,v,k,...) \
97
hwa->ct.capture0.config.edge = HW_A1(hw_ica_edge_##v); \
98
HW_BW(_hwa_cfica_kfilter_,filter,k)(ct,k,__VA_ARGS__)
99
100
#define _hwa_cfica_kfilter_0(ct,...) \
101
HW_EOL(__VA_ARGS__)
102
103
#define _hwa_cfica_kfilter_1(ct,k,v,...) \
104
HW_B(_hwa_cfica_vfilter_,_hw_state_##v)(ct,v,__VA_ARGS__)
105
106
#define _hwa_cfica_vfilter_0(ct,v,...) \
107
HW_E(HW_EM_VOAL(v,filter,(on,off)))
108
109
#define _hwa_cfica_vfilter_1(ct,v,...) \
110
hwa->ct.capture0.config.filter = HW_A1(_hw_state_##v); \
111
HW_EOL(__VA_ARGS__)
112
113
124
#define hw_read__ica , _hw_read_ica
125
#define _hw_read_ica(o,ct,ic,...) _hw_read(ct,icr##ic) HW_EOL(__VA_ARGS__)
126
127
138
#define hw_write__ica , _hw_write_ica
139
#define _hw_write_ica(o,ct,ic,v,...) _hw_write(ct,icr##ic,v) HW_EOL(__VA_ARGS__)
140
148
#define hwa_write__ica , _hwa_write_ica
149
#define _hwa_write_ica(o,ct,ic,v,...) _hwa_write(ct,icr##ic,v) HW_EOL(__VA_ARGS__)
150
151
Generated for HWA by
1.8.6