sampling hardware files

Dependents:   ELEC350_Project2

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?

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