
Demo
PeripheralLayer/AirAdaptorLib.cpp@2:0ee90da44162, 2016-05-19 (annotated)
- Committer:
- nightseas
- Date:
- Thu May 19 15:52:24 2016 +0000
- Revision:
- 2:0ee90da44162
- Parent:
- 0:3dac4f477e98
AirBoxProtoDemo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nightseas | 0:3dac4f477e98 | 1 | #include "SysConfig.h" |
nightseas | 0:3dac4f477e98 | 2 | |
nightseas | 0:3dac4f477e98 | 3 | //On-board LED number |
nightseas | 0:3dac4f477e98 | 4 | const int LED_NUM_MAX = 3; |
nightseas | 0:3dac4f477e98 | 5 | |
nightseas | 0:3dac4f477e98 | 6 | //I2C for SHT20 & BMP180 |
nightseas | 0:3dac4f477e98 | 7 | I2C i2c_sen(PB_11, PB_10); |
nightseas | 0:3dac4f477e98 | 8 | |
nightseas | 0:3dac4f477e98 | 9 | //USART2 to PC, USART1 to sensors & WiFi module |
nightseas | 0:3dac4f477e98 | 10 | Serial uart_pc(SERIAL_TX, SERIAL_RX); |
nightseas | 0:3dac4f477e98 | 11 | Serial uart_sen(PA_9, PA_10); |
nightseas | 0:3dac4f477e98 | 12 | |
nightseas | 0:3dac4f477e98 | 13 | //LEDs on mother board and daughter board |
nightseas | 0:3dac4f477e98 | 14 | DigitalOut led_mb(LED1, 0), led_db1_n(PB_1, 1), led_db2_n(PB_2, 1); |
nightseas | 0:3dac4f477e98 | 15 | |
nightseas | 0:3dac4f477e98 | 16 | //GPIO for CD4052 serial mux control |
nightseas | 0:3dac4f477e98 | 17 | DigitalOut smux_a(PB_14, 0), smux_b(PB_13, 0), smux_oe_n(PB_15, 1); |
nightseas | 0:3dac4f477e98 | 18 | |
nightseas | 2:0ee90da44162 | 19 | AnalogIn adc_ch10(PC_0), adc_ch11(PC_1); |
nightseas | 2:0ee90da44162 | 20 | |
nightseas | 0:3dac4f477e98 | 21 | |
nightseas | 0:3dac4f477e98 | 22 | //Init board library |
nightseas | 0:3dac4f477e98 | 23 | //--> Success return 0 |
nightseas | 0:3dac4f477e98 | 24 | int BoardLibInit(void) |
nightseas | 0:3dac4f477e98 | 25 | { |
nightseas | 0:3dac4f477e98 | 26 | //Init LED status |
nightseas | 0:3dac4f477e98 | 27 | LedOnAll(); |
nightseas | 0:3dac4f477e98 | 28 | |
nightseas | 0:3dac4f477e98 | 29 | //Init debug & sensor UART |
nightseas | 0:3dac4f477e98 | 30 | uart_pc.baud(115200); |
nightseas | 0:3dac4f477e98 | 31 | uart_sen.baud(9600); |
nightseas | 0:3dac4f477e98 | 32 | |
nightseas | 0:3dac4f477e98 | 33 | //Init sensor I2C |
nightseas | 0:3dac4f477e98 | 34 | i2c_sen.frequency(100000); |
nightseas | 0:3dac4f477e98 | 35 | |
nightseas | 0:3dac4f477e98 | 36 | //Init serial mux chip |
nightseas | 0:3dac4f477e98 | 37 | SerialMuxDisable(); |
nightseas | 0:3dac4f477e98 | 38 | SerialMuxSel(0); |
nightseas | 0:3dac4f477e98 | 39 | |
nightseas | 0:3dac4f477e98 | 40 | //Return 0 if success |
nightseas | 0:3dac4f477e98 | 41 | return 0; |
nightseas | 0:3dac4f477e98 | 42 | } |
nightseas | 0:3dac4f477e98 | 43 | |
nightseas | 0:3dac4f477e98 | 44 | void SerialMuxSel(int ch) |
nightseas | 0:3dac4f477e98 | 45 | { |
nightseas | 0:3dac4f477e98 | 46 | switch(ch) |
nightseas | 0:3dac4f477e98 | 47 | { |
nightseas | 0:3dac4f477e98 | 48 | case 1: |
nightseas | 0:3dac4f477e98 | 49 | smux_a = 1; |
nightseas | 0:3dac4f477e98 | 50 | smux_b = 0; |
nightseas | 0:3dac4f477e98 | 51 | break; |
nightseas | 0:3dac4f477e98 | 52 | |
nightseas | 0:3dac4f477e98 | 53 | case 2: |
nightseas | 0:3dac4f477e98 | 54 | smux_a = 0; |
nightseas | 0:3dac4f477e98 | 55 | smux_b = 1; |
nightseas | 0:3dac4f477e98 | 56 | break; |
nightseas | 0:3dac4f477e98 | 57 | |
nightseas | 0:3dac4f477e98 | 58 | case 3: |
nightseas | 0:3dac4f477e98 | 59 | smux_a = 1; |
nightseas | 0:3dac4f477e98 | 60 | smux_b = 1; |
nightseas | 0:3dac4f477e98 | 61 | break; |
nightseas | 0:3dac4f477e98 | 62 | |
nightseas | 0:3dac4f477e98 | 63 | |
nightseas | 0:3dac4f477e98 | 64 | case 0: |
nightseas | 0:3dac4f477e98 | 65 | default: |
nightseas | 0:3dac4f477e98 | 66 | smux_a = 0; |
nightseas | 0:3dac4f477e98 | 67 | smux_b = 0; |
nightseas | 0:3dac4f477e98 | 68 | break; |
nightseas | 0:3dac4f477e98 | 69 | } |
nightseas | 0:3dac4f477e98 | 70 | } |
nightseas | 0:3dac4f477e98 | 71 | |
nightseas | 0:3dac4f477e98 | 72 | void SerialMuxEnable(void) |
nightseas | 0:3dac4f477e98 | 73 | { |
nightseas | 0:3dac4f477e98 | 74 | smux_oe_n = 0; |
nightseas | 0:3dac4f477e98 | 75 | } |
nightseas | 0:3dac4f477e98 | 76 | |
nightseas | 0:3dac4f477e98 | 77 | void SerialMuxDisable(void) |
nightseas | 0:3dac4f477e98 | 78 | { |
nightseas | 0:3dac4f477e98 | 79 | smux_oe_n = 0; |
nightseas | 0:3dac4f477e98 | 80 | } |
nightseas | 0:3dac4f477e98 | 81 | |
nightseas | 0:3dac4f477e98 | 82 | void LedOn(int ch) |
nightseas | 0:3dac4f477e98 | 83 | { |
nightseas | 0:3dac4f477e98 | 84 | switch(ch) |
nightseas | 0:3dac4f477e98 | 85 | { |
nightseas | 0:3dac4f477e98 | 86 | case 0: |
nightseas | 0:3dac4f477e98 | 87 | led_mb = 1; |
nightseas | 0:3dac4f477e98 | 88 | break; |
nightseas | 0:3dac4f477e98 | 89 | |
nightseas | 0:3dac4f477e98 | 90 | case 1: |
nightseas | 0:3dac4f477e98 | 91 | led_db1_n = 0; |
nightseas | 0:3dac4f477e98 | 92 | break; |
nightseas | 0:3dac4f477e98 | 93 | |
nightseas | 0:3dac4f477e98 | 94 | case 2: |
nightseas | 0:3dac4f477e98 | 95 | led_db2_n = 0; |
nightseas | 0:3dac4f477e98 | 96 | break; |
nightseas | 0:3dac4f477e98 | 97 | |
nightseas | 0:3dac4f477e98 | 98 | default: |
nightseas | 0:3dac4f477e98 | 99 | break; |
nightseas | 0:3dac4f477e98 | 100 | } |
nightseas | 0:3dac4f477e98 | 101 | } |
nightseas | 0:3dac4f477e98 | 102 | |
nightseas | 0:3dac4f477e98 | 103 | void LedOff(int ch) |
nightseas | 0:3dac4f477e98 | 104 | { |
nightseas | 0:3dac4f477e98 | 105 | switch(ch) |
nightseas | 0:3dac4f477e98 | 106 | { |
nightseas | 0:3dac4f477e98 | 107 | case 0: |
nightseas | 0:3dac4f477e98 | 108 | led_mb = 0; |
nightseas | 0:3dac4f477e98 | 109 | break; |
nightseas | 0:3dac4f477e98 | 110 | |
nightseas | 0:3dac4f477e98 | 111 | case 1: |
nightseas | 0:3dac4f477e98 | 112 | led_db1_n = 1; |
nightseas | 0:3dac4f477e98 | 113 | break; |
nightseas | 0:3dac4f477e98 | 114 | |
nightseas | 0:3dac4f477e98 | 115 | case 2: |
nightseas | 0:3dac4f477e98 | 116 | led_db2_n = 1; |
nightseas | 0:3dac4f477e98 | 117 | break; |
nightseas | 0:3dac4f477e98 | 118 | |
nightseas | 0:3dac4f477e98 | 119 | default: |
nightseas | 0:3dac4f477e98 | 120 | break; |
nightseas | 0:3dac4f477e98 | 121 | } |
nightseas | 0:3dac4f477e98 | 122 | } |
nightseas | 0:3dac4f477e98 | 123 | |
nightseas | 0:3dac4f477e98 | 124 | void LedToggle(int ch) |
nightseas | 0:3dac4f477e98 | 125 | { |
nightseas | 0:3dac4f477e98 | 126 | switch(ch) |
nightseas | 0:3dac4f477e98 | 127 | { |
nightseas | 0:3dac4f477e98 | 128 | case 0: |
nightseas | 0:3dac4f477e98 | 129 | if(led_mb) |
nightseas | 0:3dac4f477e98 | 130 | led_mb = 0; |
nightseas | 0:3dac4f477e98 | 131 | else |
nightseas | 0:3dac4f477e98 | 132 | led_mb = 1; |
nightseas | 0:3dac4f477e98 | 133 | break; |
nightseas | 0:3dac4f477e98 | 134 | |
nightseas | 0:3dac4f477e98 | 135 | case 1: |
nightseas | 0:3dac4f477e98 | 136 | if(led_db1_n) |
nightseas | 0:3dac4f477e98 | 137 | led_db1_n = 0; |
nightseas | 0:3dac4f477e98 | 138 | else |
nightseas | 0:3dac4f477e98 | 139 | led_db1_n = 1; |
nightseas | 0:3dac4f477e98 | 140 | break; |
nightseas | 0:3dac4f477e98 | 141 | |
nightseas | 0:3dac4f477e98 | 142 | case 2: |
nightseas | 0:3dac4f477e98 | 143 | if(led_db2_n) |
nightseas | 0:3dac4f477e98 | 144 | led_db2_n = 0; |
nightseas | 0:3dac4f477e98 | 145 | else |
nightseas | 0:3dac4f477e98 | 146 | led_db2_n = 1; |
nightseas | 0:3dac4f477e98 | 147 | break; |
nightseas | 0:3dac4f477e98 | 148 | |
nightseas | 0:3dac4f477e98 | 149 | default: |
nightseas | 0:3dac4f477e98 | 150 | break; |
nightseas | 0:3dac4f477e98 | 151 | } |
nightseas | 0:3dac4f477e98 | 152 | } |
nightseas | 0:3dac4f477e98 | 153 | |
nightseas | 0:3dac4f477e98 | 154 | void LedOnAll(void) |
nightseas | 0:3dac4f477e98 | 155 | { |
nightseas | 0:3dac4f477e98 | 156 | for(int ledNum = 0; ledNum < LED_NUM_MAX; ledNum++) |
nightseas | 0:3dac4f477e98 | 157 | LedOn(ledNum); |
nightseas | 0:3dac4f477e98 | 158 | } |
nightseas | 0:3dac4f477e98 | 159 | |
nightseas | 0:3dac4f477e98 | 160 | void LedOffAll(void) |
nightseas | 0:3dac4f477e98 | 161 | { |
nightseas | 0:3dac4f477e98 | 162 | for(int ledNum = 0; ledNum < LED_NUM_MAX; ledNum++) |
nightseas | 0:3dac4f477e98 | 163 | LedOff(ledNum); |
nightseas | 2:0ee90da44162 | 164 | } |