Rev 1.6 - Sample Period Work in progress

Dependencies:   mbed Bitmap N5110 TMP102 Joystick

Committer:
louismarr
Date:
Fri Dec 10 10:01:00 2021 +0000
Revision:
3:dfa8b25cc819
Parent:
2:94cc00f20883
Child:
4:891e1b0fbd1e
Main.cpp Rev 1.2.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
louismarr 1:5cdfc8d78097 1 /*
louismarr 1:5cdfc8d78097 2 @Acknowledgements to Craig A.Evans for TMP102 Library reading temperatures
louismarr 2:94cc00f20883 3 /
louismarr 0:f8a8c6a8a5c3 4 */
louismarr 1:5cdfc8d78097 5 /*============================ Libraries =====================================*/
louismarr 1:5cdfc8d78097 6 #include "mbed.h" // Including Mbed OS Header File Libraries
louismarr 1:5cdfc8d78097 7 #include "TMP102.h" // Including Tmp102 Header File Libraries
louismarr 0:f8a8c6a8a5c3 8
louismarr 0:f8a8c6a8a5c3 9
louismarr 1:5cdfc8d78097 10 /*============================ Variables =====================================*/
louismarr 1:5cdfc8d78097 11 //Serial
louismarr 1:5cdfc8d78097 12 TMP102 Tmp_I2C(PTE25,PTE24); //Establishing TMP102 I2C Sensor (I2C_SDA(PTE25),I2C_SCL(PTE24)
louismarr 1:5cdfc8d78097 13 Serial serial(USBTX,USBRX); //Serial Port
louismarr 0:f8a8c6a8a5c3 14
louismarr 1:5cdfc8d78097 15 //Outputs
louismarr 1:5cdfc8d78097 16 DigitalOut Red_DO(LED_RED); // K64F on-board LEDs
louismarr 0:f8a8c6a8a5c3 17 DigitalOut Grn_DO(LED_GREEN);
louismarr 0:f8a8c6a8a5c3 18 DigitalOut Blue_DO(LED_BLUE);
louismarr 1:5cdfc8d78097 19 //Inputs
louismarr 1:5cdfc8d78097 20 InterruptIn Sw2_DI(SW2); // K64F on-board switches
louismarr 0:f8a8c6a8a5c3 21 InterruptIn Sw3_DI(SW3);
louismarr 0:f8a8c6a8a5c3 22
louismarr 1:5cdfc8d78097 23 /*=========================== Void Functions =================================*/
louismarr 1:5cdfc8d78097 24
louismarr 1:5cdfc8d78097 25 void error(); // error function flashing blue LED from TMP102.cpp and prints Error State to CoolTerm
louismarr 0:f8a8c6a8a5c3 26
louismarr 1:5cdfc8d78097 27 void init_serial(); // Serial port setup
louismarr 1:5cdfc8d78097 28
louismarr 1:5cdfc8d78097 29 void init_K64FSetup(); // Disabling on-board LEDs and switches
louismarr 1:5cdfc8d78097 30
louismarr 1:5cdfc8d78097 31 /*============================ Main Code =====================================*/
louismarr 0:f8a8c6a8a5c3 32 int main()
louismarr 0:f8a8c6a8a5c3 33 {
louismarr 1:5cdfc8d78097 34 serial.baud(9600);
louismarr 1:5cdfc8d78097 35
louismarr 1:5cdfc8d78097 36 init_K64FSetup(); // Initiliasing the Void Functions into the main code
louismarr 0:f8a8c6a8a5c3 37 init_serial();
louismarr 1:5cdfc8d78097 38 error();
louismarr 1:5cdfc8d78097 39
louismarr 1:5cdfc8d78097 40 Tmp_I2C.init(); // I2C Sensor Initialising
louismarr 0:f8a8c6a8a5c3 41
louismarr 0:f8a8c6a8a5c3 42 while (1) {
louismarr 0:f8a8c6a8a5c3 43
louismarr 1:5cdfc8d78097 44 float T = Tmp_I2C.get_temperature(); // Read Temp from I2C Sensor
louismarr 3:dfa8b25cc819 45 serial.printf("Room Temperature = %f C\n",T); // Print Value over CoolTerm
louismarr 1:5cdfc8d78097 46
louismarr 1:5cdfc8d78097 47 wait(1.0); // small delay - 1s to match the update rate of the sensor (1 Hz)
louismarr 0:f8a8c6a8a5c3 48
louismarr 0:f8a8c6a8a5c3 49 }
louismarr 1:5cdfc8d78097 50 }
louismarr 0:f8a8c6a8a5c3 51
louismarr 1:5cdfc8d78097 52 /*=============================== Void Setup =================================*/
louismarr 0:f8a8c6a8a5c3 53
louismarr 0:f8a8c6a8a5c3 54 void init_serial() {
louismarr 0:f8a8c6a8a5c3 55 // set to highest baud - ensure terminal software matches
louismarr 1:5cdfc8d78097 56 serial.baud(9600);
louismarr 0:f8a8c6a8a5c3 57 }
louismarr 0:f8a8c6a8a5c3 58
louismarr 1:5cdfc8d78097 59 void init_K64FSetup()
louismarr 0:f8a8c6a8a5c3 60 {
louismarr 1:5cdfc8d78097 61
louismarr 1:5cdfc8d78097 62 Red_DO = 1; // on-board LEDs are active-low, so set pin high to turn them off.
louismarr 0:f8a8c6a8a5c3 63 Grn_DO = 1;
louismarr 0:f8a8c6a8a5c3 64 Blue_DO = 1;
louismarr 1:5cdfc8d78097 65
louismarr 1:5cdfc8d78097 66 Sw2_DI.mode(PullNone); // since the on-board switches have external pull-ups, we should disable the internal pull-down
louismarr 1:5cdfc8d78097 67 Sw3_DI.mode(PullNone); // resistors that are enabled by default using InterruptIn
louismarr 0:f8a8c6a8a5c3 68
louismarr 0:f8a8c6a8a5c3 69 }
louismarr 1:5cdfc8d78097 70 void error(){
louismarr 1:5cdfc8d78097 71 serial.baud(9600); // Serial Baud Rate
louismarr 1:5cdfc8d78097 72 serial.printf("Error State"); // Error Print Message
louismarr 1:5cdfc8d78097 73 }