Rev 1842 | Rev 1864 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1612 | dongfang | 1 | #ifndef _OUTPUT_H |
2 | #define _OUTPUT_H |
||
3 | |||
4 | #include <avr/io.h> |
||
5 | |||
1805 | - | 6 | // invert means: An "1" bit in digital debug data make a LOW on the output. |
7 | #define DIGITAL_DEBUG_INVERT 1 |
||
1854 | - | 8 | |
1805 | - | 9 | #define OUTPUT_HIGH(num) {PORTC |= (4 << (num));} |
10 | #define OUTPUT_LOW(num) {PORTC &= ~(4 << (num));} |
||
11 | #define OUTPUT_SET(num, state) {if (DIGITAL_DEBUG_INVERT){if(state) OUTPUT_LOW(num) else OUTPUT_HIGH(num)} else {if(state) OUTPUT_HIGH(num) else OUTPUT_LOW(num)}} |
||
1775 | - | 12 | #define OUTPUT_TOGGLE(num) ( {PORTC ^= (4 << (num));} |
1612 | dongfang | 13 | |
1854 | - | 14 | /* |
15 | * Some digital debugs. A digital debug is 2 signals on the 2 LED outputs, |
||
16 | * turned on and off depending on some condtions given in the code. |
||
17 | * Only one can be selected, by defining DIGITAL_DEBUG_MASK to the value |
||
18 | * of the debug. |
||
19 | * In the code one can do like: |
||
20 | * if (whatever_condition) { |
||
21 | * DebugOut.Digital[0] |= DEBUG_MYOWNDEBUGGER; |
||
22 | * } else { |
||
23 | * DebugOut.Digital[0] &= ~DEBUG_MYOWNDEBUGGER; |
||
24 | * } |
||
25 | * ... |
||
26 | * if (whatever_other_condition) { |
||
27 | * DebugOut.Digital[1] |= DEBUG_MYOWNDEBUGGER; |
||
28 | * } else { |
||
29 | * DebugOut.Digital[1] &= ~DEBUG_MYOWNDEBUGGER; |
||
30 | * } |
||
31 | * |
||
32 | * Digital debugs may be added as desired, and removed when the mystery |
||
33 | * at hand is resolved. |
||
34 | */ |
||
1775 | - | 35 | #define DEBUG_LEDTEST 256 |
36 | #define DEBUG_HEIGHT_SWITCH 1 |
||
37 | #define DEBUG_HEIGHT_DIFF 2 |
||
38 | #define DEBUG_HOVERTHROTTLE 4 |
||
39 | #define DEBUG_ACC0THORDER 8 |
||
40 | #define DEBUG_COMMANDREPEATED 16 |
||
1796 | - | 41 | #define DEBUG_PRESSURERANGE 32 |
1842 | - | 42 | #define DEBUG_CLIP 64 |
1854 | - | 43 | #define DEBUG_SENSORLIMIT 128 |
1612 | dongfang | 44 | |
1854 | - | 45 | /* |
46 | * Set to 0 for using outputs as the usual flashing lights. |
||
47 | * Set to one of the DEBUG_... defines h for using the outputs as debug lights. |
||
48 | */ |
||
49 | #define DIGITAL_DEBUG_MASK DEBUG_CLIP |
||
50 | |||
1612 | dongfang | 51 | void output_init(void); |
52 | void output_update(void); |
||
53 | |||
54 | #endif //_output_H |