swmux.c
Go to the documentation of this file.
1#include "swmux.h"
2
3#ifdef CONF_DSENSOR
4#ifdef CONF_DSENSOR_SWMUX
5
6
7//sampled multiplexor ranges
8
9//0xFE00 - sampled raw value for no sensors touched
10#define SWMUX_0000_S 0xF000
11#define SWMUX_0000_E 0xFFFF
12
13//0x9640 - sampled raw value for only A touched
14#define SWMUX_A000_S 0x9000
15#define SWMUX_A000_E 0x9FFF
16
17//Ox8180 - sampled raw value for A and B touched
18#define SWMUX_AB00_S 0x8000
19#define SWMUX_AB00_E 0x8BFF
20
21//0x8D80 - sampled raw value for A and C touched
22#define SWMUX_A0C0_S 0x8C00
23#define SWMUX_A0C0_E 0x8FFF
24
25//Ox7800 - sampled raw value for A, B, and C touched
26#define SWMUX_ABC0_S 0x7000
27#define SWMUX_ABC0_E 0x7FFF
28
29//0xC000 - sampled raw value for only B touched
30#define SWMUX_0B00_S 0xBFF0
31#define SWMUX_0B00_E 0xC5FF
32
33//0xA6C0 - sampled raw value for B and C touched
34#define SWMUX_0BC0_S 0xA000
35#define SWMUX_0BC0_E 0xAFFF
36
37//OxD6C0 - sampled raw value for only C touched
38#define SWMUX_00C0_S 0xD000
39#define SWMUX_00C0_E 0xDFFF
40
41//exta sensor D, when pressed A,B,C are masked out
42//0x0600
43#define SWMUX_XXXD_S 0x0000
44#define SWMUX_XXXD_E 0x4FFF
45
46
47
48unsigned char swmux_bits(unsigned int raw) {
49 if(raw>=SWMUX_0000_S && raw <=SWMUX_0000_E) {
50 return 0;
51 } else if (raw>=SWMUX_A000_S && raw <=SWMUX_A000_E) {
52 return SWMUX_A_MASK;
53 } else if (raw>=SWMUX_AB00_S && raw <=SWMUX_AB00_E) {
54 return SWMUX_A_MASK|SWMUX_B_MASK;
55 } else if (raw>=SWMUX_A0C0_S && raw <=SWMUX_A0C0_E) {
56 return SWMUX_A_MASK|SWMUX_C_MASK;
57 } else if (raw>=SWMUX_ABC0_S && raw <=SWMUX_ABC0_E) {
58 return SWMUX_A_MASK|SWMUX_B_MASK|SWMUX_C_MASK;
59 } else if (raw>=SWMUX_0B00_S && raw <=SWMUX_0B00_E) {
60 return SWMUX_B_MASK;
61 } else if (raw>=SWMUX_0BC0_S && raw <=SWMUX_0BC0_E) {
62 return SWMUX_B_MASK|SWMUX_C_MASK;
63 } else if (raw>=SWMUX_00C0_S && raw <=SWMUX_00C0_E) {
64 return SWMUX_C_MASK;
65 } else if (raw>=SWMUX_XXXD_S && raw <=SWMUX_XXXD_E) {
66 return SWMUX_D_MASK;
67 } else {
68 return SWMUX_ERROR_MASK;
69 }
70}//endof swmux_val
71
72#endif //CONF_DSENSOR_SWMUX
73#endif //CONF_DSENSOR
74
Interface: direct control of a touch sensor multiplexor.

brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated for brickOS Kernel Developer by doxygen 1.9.4