Rev 1960 | Rev 1968 | 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 | |||
1864 | - | 6 | #define J3HIGH PORTD |= (1<<PORTD5) |
7 | #define J3LOW PORTD &= ~(1<<PORTD5) |
||
8 | #define J3TOGGLE PORTD ^= (1<<PORTD5) |
||
9 | |||
10 | #define J4HIGH PORTD |= (1<<PORTD4) |
||
11 | #define J4LOW PORTD &= ~(1<<PORTD4) |
||
12 | #define J4TOGGLE PORTD ^= (1<<PORTD4) |
||
13 | |||
14 | #define J5HIGH PORTD |= (1<<PORTD3) |
||
15 | #define J5LOW PORTD &= ~(1<<PORTD3) |
||
16 | #define J5TOGGLE PORTD ^= (1<<PORTD3) |
||
17 | |||
1805 | - | 18 | // invert means: An "1" bit in digital debug data make a LOW on the output. |
1887 | - | 19 | #define DIGITAL_DEBUG_INVERT 0 |
1854 | - | 20 | |
1805 | - | 21 | #define OUTPUT_HIGH(num) {PORTC |= (4 << (num));} |
22 | #define OUTPUT_LOW(num) {PORTC &= ~(4 << (num));} |
||
1775 | - | 23 | #define OUTPUT_TOGGLE(num) ( {PORTC ^= (4 << (num));} |
1612 | dongfang | 24 | |
1854 | - | 25 | /* |
26 | * Some digital debugs. A digital debug is 2 signals on the 2 LED outputs, |
||
27 | * turned on and off depending on some condtions given in the code. |
||
28 | * Only one can be selected, by defining DIGITAL_DEBUG_MASK to the value |
||
29 | * of the debug. |
||
30 | * In the code one can do like: |
||
31 | * if (whatever_condition) { |
||
32 | * DebugOut.Digital[0] |= DEBUG_MYOWNDEBUGGER; |
||
33 | * } else { |
||
34 | * DebugOut.Digital[0] &= ~DEBUG_MYOWNDEBUGGER; |
||
35 | * } |
||
36 | * ... |
||
37 | * if (whatever_other_condition) { |
||
38 | * DebugOut.Digital[1] |= DEBUG_MYOWNDEBUGGER; |
||
39 | * } else { |
||
40 | * DebugOut.Digital[1] &= ~DEBUG_MYOWNDEBUGGER; |
||
41 | * } |
||
42 | * |
||
43 | * Digital debugs may be added as desired, and removed when the mystery |
||
44 | * at hand is resolved. |
||
45 | */ |
||
1869 | - | 46 | |
1908 | - | 47 | // Both on |
1869 | - | 48 | #define DEBUG_LEDTEST_ON 1000 |
1908 | - | 49 | |
50 | // Both off |
||
1869 | - | 51 | #define DEBUG_LEDTEST_OFF 1001 |
1908 | - | 52 | |
53 | // #0 on |
||
1869 | - | 54 | #define DEBUG_LEDTEST_0 1002 |
1908 | - | 55 | |
56 | // #1 on |
||
1869 | - | 57 | #define DEBUG_LEDTEST_1 1003 |
58 | |||
59 | #define DEBUG_MAINLOOP_TIMER 1 |
||
1964 | - | 60 | #define DEBUG_HEIGHT_DIFF 2 |
61 | #define DEBUG_HOVERTHROTTLE 4 |
||
62 | #define DEBUG_ACC0THORDER 8 |
||
63 | #define DEBUG_SIGNAL 16 |
||
1796 | - | 64 | #define DEBUG_PRESSURERANGE 32 |
1964 | - | 65 | #define DEBUG_CLIP 64 |
66 | #define DEBUG_SENSORLIMIT 128 |
||
1612 | dongfang | 67 | |
1964 | - | 68 | #define OUTPUTOPTIONS_INVERT_0 1 |
69 | #define OUTPUTOPTIONS_INVERT_1 2 |
||
70 | #define OUTPUTOPTIONS_FLASH_AT_BEEP 4 |
||
71 | #define OUTPUTOPTIONS_USE_ONBOARD_LEDS 8 |
||
72 | #define OUTPUTOPTIONS_TEST_LO 64 |
||
73 | #define OUTPUTOPTIONS_TEST_HI 128 |
||
74 | |||
1854 | - | 75 | /* |
76 | * Set to 0 for using outputs as the usual flashing lights. |
||
77 | * Set to one of the DEBUG_... defines h for using the outputs as debug lights. |
||
78 | */ |
||
1960 | - | 79 | #define DIGITAL_DEBUG_MASK 0 |
1854 | - | 80 | |
1612 | dongfang | 81 | void output_init(void); |
1964 | - | 82 | void outputSet(uint8_t num, uint8_t state); |
1612 | dongfang | 83 | void output_update(void); |
1887 | - | 84 | void beep(uint16_t millis); |
85 | void beepNumber(uint8_t numbeeps); |
||
86 | void beepRCAlarm(void); |
||
87 | void beepI2CAlarm(void); |
||
88 | void beepBatteryAlarm(void); |
||
1612 | dongfang | 89 | |
90 | #endif //_output_H |