![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Rev 1.6 - Sample Period Work in progress
Dependencies: mbed Bitmap N5110 TMP102 Joystick
main.cpp@3:dfa8b25cc819, 2021-12-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |