HWA
Bare metal programming with style
tcs3200.h
Go to the documentation of this file.
1
#ifndef _HWA_TCS3200_H_
2
#define _HWA_TCS3200_H_
3
4
/* This file is part of the HWA project.
5
* Copyright (c) 2012,2015 Christophe Duparquet.
6
* All rights reserved. Read LICENSE.TXT for details.
7
*/
8
72
#define hw_class__tcs3200
73
74
#define hw_configure__tcs3200 , _hw_cft3k2
75
#define hwa_configure__tcs3200 , _hwa_cft3k2
76
77
78
#define _hw_t3k2_fq_0 , 0, 0
/* S1, S0 */
79
#define _hw_t3k2_fq_12kHz , 1, 0
/* S1, S0 */
80
#define _hw_t3k2_fq_120kHz , 0, 1
/* S1, S0 */
81
#define _hw_t3k2_fq_600kHz , 1, 1
/* S1, S0 */
82
83
#define _hw_t3k2_fl_red , 0, 0
/* S3, S2 */
84
#define _hw_t3k2_fl_clear , 0, 1
/* S3, S2 */
85
#define _hw_t3k2_fl_blue , 1, 0
/* S3, S2 */
86
#define _hw_t3k2_fl_green , 1, 1
/* S3, S2 */
87
88
#define _hw_cft3k2(...) do { _hwx_cft3k2(_hw,__VA_ARGS__) }while(0)
89
#define _hwa_cft3k2(...) do { _hwx_cft3k2(_hwa,__VA_ARGS__) }while(0)
90
91
/* Optionnal keyword 'frequency'
92
*/
93
#define _hwx_cft3k2(h,o,a,k,...) HW_B(_hwx_cft3k2_kfq_,_hw_is_frequency_##k)(h,o,k,__VA_ARGS__)
94
#define _hwx_cft3k2_kfq_1(h,o,k,v,...) HW_B(_hwx_cft3k2_vfq_,_hw_t3k2_fq_##v)(h,o,v,__VA_ARGS__)
95
#define _hwx_cft3k2_vfq_0(h,o,v,...) HW_E(HW_EM_VOAL(v,frequency,(0,12kHz,120kHz,600kHz))
96
#define _hwx_cft3k2_vfq_1(h,o,v,k,...) \
97
h(write,hw_##o##_s1, HW_A1(_hw_t3k2_fq_##v)); \
98
h(write,hw_##o##_s0, HW_A2(_hw_t3k2_fq_##v)); \
99
HW_B(_hwx_cft3k2_kfl_,_hw_is_filter_##k)(h,o,k,__VA_ARGS__)
100
101
/* Optionnal keyword 'filter'
102
*/
103
#define _hwx_cft3k2_kfq_0(h,o,k,...) HW_B(_hwx_cft3k2_kfl_,_hw_is_filter_##k)(h,o,k,__VA_ARGS__)
104
#define _hwx_cft3k2_kfl_1(h,o,k,v,...) HW_B(_hwx_cft3k2_vfl_,_hw_t3k2_fl_##v)(h,o,v,__VA_ARGS__)
105
#define _hwx_cft3k2_vfl_0(h,o,v,...) HW_E(HW_EM_VOAL(v,filter,(10_12kHz,100_120kHz,500_600kHz))
106
#define _hwx_cft3k2_vfl_1(h,o,v,k,...) \
107
h(write,hw_##o##_s3, HW_A1(_hw_t3k2_fl_##v)); \
108
h(write,hw_##o##_s2, HW_A2(_hw_t3k2_fl_##v)); \
109
HW_B(_hwx_cft3k2_kou_,_hw_is_output_##k)(h,o,k,__VA_ARGS__)
110
111
/* Optionnal keyword 'output'
112
*/
113
#define _hwx_cft3k2_kfl_0(h,o,k,...) HW_B(_hwx_cft3k2_kou_,_hw_is_output_##k)(h,o,k,__VA_ARGS__)
114
#define _hwx_cft3k2_kou_1(h,o,k,v,...) HW_B(_hwx_cft3k2_vou_,_hw_state_##v)(h,o,v,__VA_ARGS__)
115
#define _hwx_cft3k2_vou_0(h,o,v,...) HW_E(HW_EM_ST(v))
116
#define _hwx_cft3k2_vou_1(h,o,v,...) \
117
h(write,hw_##o##_oe, HW_A1(_hw_state_##v)); \
118
HW_EOL(__VA_ARGS__)
119
#define _hwx_cft3k2_kou_0(h,o,...) HW_EOL(__VA_ARGS__)
120
121
#endif
Generated for HWA by
1.8.6