sampling hardware files
sample_hardware.cpp@1:696e528359c6, 2018-11-05 (annotated)
- Committer:
- Swabey89
- Date:
- Mon Nov 05 20:43:37 2018 +0000
- Revision:
- 1:696e528359c6
- Parent:
- 0:6d337c4ac714
- Child:
- 2:b3401cc53ad4
fresh
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Swabey89 | 0:6d337c4ac714 | 1 | #include "mbed.h" |
Swabey89 | 0:6d337c4ac714 | 2 | #include "sample_hardware.hpp" |
Swabey89 | 0:6d337c4ac714 | 3 | #include "Networkbits.hpp" |
Swabey89 | 0:6d337c4ac714 | 4 | |
Swabey89 | 0:6d337c4ac714 | 5 | #define RED_DONE 1 |
Swabey89 | 0:6d337c4ac714 | 6 | #define YELLOW_DONE 2 |
Swabey89 | 0:6d337c4ac714 | 7 | |
Swabey89 | 0:6d337c4ac714 | 8 | //Digital outputs |
Swabey89 | 0:6d337c4ac714 | 9 | DigitalOut onBoardLED(LED1); |
Swabey89 | 0:6d337c4ac714 | 10 | DigitalOut redLED(PE_15); |
Swabey89 | 0:6d337c4ac714 | 11 | DigitalOut yellowLED(PB_10); |
Swabey89 | 0:6d337c4ac714 | 12 | DigitalOut greenLED(PB_11); |
Swabey89 | 0:6d337c4ac714 | 13 | |
Swabey89 | 0:6d337c4ac714 | 14 | //Inputs |
Swabey89 | 0:6d337c4ac714 | 15 | DigitalIn onBoardSwitch(USER_BUTTON); |
Swabey89 | 0:6d337c4ac714 | 16 | DigitalIn SW1(PE_12); |
Swabey89 | 0:6d337c4ac714 | 17 | DigitalIn SW2(PE_14); |
Swabey89 | 0:6d337c4ac714 | 18 | //Serial pc(USBTX, USBRX); |
Swabey89 | 0:6d337c4ac714 | 19 | AnalogIn adcIn(PA_0); |
Swabey89 | 0:6d337c4ac714 | 20 | |
Swabey89 | 0:6d337c4ac714 | 21 | //Environmental Sensor driver |
Swabey89 | 0:6d337c4ac714 | 22 | #ifdef BME |
Swabey89 | 0:6d337c4ac714 | 23 | BME280 sensor(D14, D15); |
Swabey89 | 0:6d337c4ac714 | 24 | #else |
Swabey89 | 0:6d337c4ac714 | 25 | BMP280 sensor(D14, D15); |
Swabey89 | 0:6d337c4ac714 | 26 | #endif |
Swabey89 | 0:6d337c4ac714 | 27 | |
Swabey89 | 0:6d337c4ac714 | 28 | //LCD Driver (provided via mbed repository) |
Swabey89 | 0:6d337c4ac714 | 29 | //RS D9 |
Swabey89 | 0:6d337c4ac714 | 30 | //E D8 |
Swabey89 | 0:6d337c4ac714 | 31 | //D7,6,4,2 are the 4 bit for d4-7 |
Swabey89 | 0:6d337c4ac714 | 32 | TextLCD lcd(D9, D8, D7, D6, D4, D2); // rs, e, d4-d7 |
Swabey89 | 0:6d337c4ac714 | 33 | |
Swabey89 | 0:6d337c4ac714 | 34 | //SD Card |
Swabey89 | 1:696e528359c6 | 35 | SDBlockDevice sd(PB_5, D12, D13, D10); // mosi, miso, sclk, cs |
Swabey89 | 0:6d337c4ac714 | 36 | |
Swabey89 | 0:6d337c4ac714 | 37 | //POWER ON SELF TEST |
Swabey89 | 0:6d337c4ac714 | 38 | void post() |
Swabey89 | 0:6d337c4ac714 | 39 | { |
Swabey89 | 0:6d337c4ac714 | 40 | //POWER ON TEST (POT) |
Swabey89 | 0:6d337c4ac714 | 41 | puts("**********STARTING POWER ON SELF TEST (POST)**********"); |
Swabey89 | 0:6d337c4ac714 | 42 | |
Swabey89 | 0:6d337c4ac714 | 43 | //Test LEDs |
Swabey89 | 0:6d337c4ac714 | 44 | puts("ALL LEDs should be blinking"); |
Swabey89 | 0:6d337c4ac714 | 45 | for (unsigned int n=0; n<10; n++) { |
Swabey89 | 0:6d337c4ac714 | 46 | redLED = 1; |
Swabey89 | 0:6d337c4ac714 | 47 | yellowLED = 1; |
Swabey89 | 0:6d337c4ac714 | 48 | greenLED = 1; |
Swabey89 | 0:6d337c4ac714 | 49 | wait(0.05); |
Swabey89 | 0:6d337c4ac714 | 50 | redLED = 0; |
Swabey89 | 0:6d337c4ac714 | 51 | yellowLED = 0; |
Swabey89 | 0:6d337c4ac714 | 52 | greenLED = 0; |
Swabey89 | 0:6d337c4ac714 | 53 | wait(0.05); |
Swabey89 | 0:6d337c4ac714 | 54 | } |
Swabey89 | 0:6d337c4ac714 | 55 | |
Swabey89 | 0:6d337c4ac714 | 56 | //Output the switch states (hold them down to test) |
Swabey89 | 0:6d337c4ac714 | 57 | printf("SW1: %d\tSW2: %d\n\r", SW1.read(), SW2.read()); |
Swabey89 | 0:6d337c4ac714 | 58 | printf("USER: %d\n\r", onBoardSwitch.read()); |
Swabey89 | 0:6d337c4ac714 | 59 | |
Swabey89 | 0:6d337c4ac714 | 60 | //Output the ADC |
Swabey89 | 0:6d337c4ac714 | 61 | printf("ADC: %f\n\r", adcIn.read()); |
Swabey89 | 0:6d337c4ac714 | 62 | |
Swabey89 | 0:6d337c4ac714 | 63 | //Read Sensors (I2C) |
Swabey89 | 0:6d337c4ac714 | 64 | float temp = sensor.getTemperature(); |
Swabey89 | 0:6d337c4ac714 | 65 | float pressure = sensor.getPressure(); |
Swabey89 | 0:6d337c4ac714 | 66 | #ifdef BME |
Swabey89 | 0:6d337c4ac714 | 67 | float humidity = sensor.getHumidity(); |
Swabey89 | 0:6d337c4ac714 | 68 | #endif |
Swabey89 | 0:6d337c4ac714 | 69 | |
Swabey89 | 0:6d337c4ac714 | 70 | //Display in PuTTY |
Swabey89 | 0:6d337c4ac714 | 71 | printf("Temperature: %5.1f\n", temp); |
Swabey89 | 0:6d337c4ac714 | 72 | printf("Pressure: %5.1f\n", pressure); |
Swabey89 | 0:6d337c4ac714 | 73 | #ifdef BME |
Swabey89 | 0:6d337c4ac714 | 74 | printf("Pressure: %5.1f\n", humidity); |
Swabey89 | 0:6d337c4ac714 | 75 | #endif |
Swabey89 | 0:6d337c4ac714 | 76 | |
Swabey89 | 0:6d337c4ac714 | 77 | //Display on LCD |
Swabey89 | 0:6d337c4ac714 | 78 | redLED = 1; |
Swabey89 | 0:6d337c4ac714 | 79 | lcd.cls(); |
Swabey89 | 0:6d337c4ac714 | 80 | lcd.printf("LCD TEST..."); |
Swabey89 | 0:6d337c4ac714 | 81 | wait(0.5); |
Swabey89 | 0:6d337c4ac714 | 82 | redLED = 0; |
Swabey89 | 0:6d337c4ac714 | 83 | |
Swabey89 | 0:6d337c4ac714 | 84 | //Network test (if BOTH switches are held down) |
Swabey89 | 0:6d337c4ac714 | 85 | networktest(); |
Swabey89 | 0:6d337c4ac714 | 86 | |
Swabey89 | 0:6d337c4ac714 | 87 | puts("**********POST END**********"); |
Swabey89 | 0:6d337c4ac714 | 88 | |
Swabey89 | 0:6d337c4ac714 | 89 | } |
Swabey89 | 0:6d337c4ac714 | 90 | |
Swabey89 | 0:6d337c4ac714 | 91 | void errorCode(ELEC350_ERROR_CODE err) |
Swabey89 | 0:6d337c4ac714 | 92 | { |
Swabey89 | 0:6d337c4ac714 | 93 | switch (err) { |
Swabey89 | 0:6d337c4ac714 | 94 | case OK: |
Swabey89 | 0:6d337c4ac714 | 95 | greenLED = 1; |
Swabey89 | 0:6d337c4ac714 | 96 | wait(1.0); |
Swabey89 | 0:6d337c4ac714 | 97 | greenLED = 0; |
Swabey89 | 0:6d337c4ac714 | 98 | return; |
Swabey89 | 0:6d337c4ac714 | 99 | case FATAL: |
Swabey89 | 0:6d337c4ac714 | 100 | while(1) { |
Swabey89 | 0:6d337c4ac714 | 101 | redLED = 1; |
Swabey89 | 0:6d337c4ac714 | 102 | wait(0.1); |
Swabey89 | 0:6d337c4ac714 | 103 | redLED = 0; |
Swabey89 | 0:6d337c4ac714 | 104 | wait(0.1); |
Swabey89 | 0:6d337c4ac714 | 105 | } |
Swabey89 | 0:6d337c4ac714 | 106 | }; |
Swabey89 | 0:6d337c4ac714 | 107 | } |