Demo

Dependencies:   mbed

Committer:
nightseas
Date:
Thu May 19 15:52:24 2016 +0000
Revision:
2:0ee90da44162
Parent:
0:3dac4f477e98
AirBoxProtoDemo

Who changed what in which revision?

UserRevisionLine numberNew 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 }