HWA
Bare metal programming with style
inta_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 
27 #define hw_configure__inta , _hw_cfinta
28 #define _hw_cfinta( o,a, ...) _hw_cfinta_(_hw,o,__VA_ARGS__,)
29 
30 #define hwa_configure__inta , _hwa_cfinta
31 #define _hwa_cfinta( o,a, ...) _hw_cfinta_(_hwa,o,__VA_ARGS__,)
32 
33 
34 /* Mandatory argument `sense`
35  */
36 #define _hw_cfinta_(h,o,k,...) HW_BW(_hw_cfinta1,sense,k)(h,o,k,__VA_ARGS__)
37 #define _hw_cfinta10(h,o,k,...) HW_E(HW_EM_AN(k,sense))
38 #define _hw_cfinta11(h,o,k,v,...) HW_BV(_hw_cfinta11,intasense_,v,o,h)(__VA_ARGS__) // PUSH
39 #define _hw_cfinta110(v,o,h) HW_E(HW_EM_VAL(v,sense,(low_level,edge,falling_edge,rising_edge))) HW_EAT // POP
40 #define _hw_cfinta111(v,o,h) h##_write(o,sc,v) HW_EOL // POP
41 
42 #define _hw_intasense_low_level , 0
43 #define _hw_intasense_edge , 1
44 #define _hw_intasense_falling_edge , 2
45 #define _hw_inta1sense_rising_edge , 3
46 
47