Subversion Repositories FlightCtrl

Rev

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