Rev 1.6 - Sample Period Work in progress

Dependencies:   mbed Bitmap N5110 TMP102 Joystick

Committer:
louismarr
Date:
Sat Dec 04 13:19:24 2021 +0000
Revision:
0:f8a8c6a8a5c3
Child:
1:5cdfc8d78097
Rev1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
louismarr 0:f8a8c6a8a5c3 1 /*
louismarr 0:f8a8c6a8a5c3 2
louismarr 0:f8a8c6a8a5c3 3 2645_I2C_TMP102_Library
louismarr 0:f8a8c6a8a5c3 4
louismarr 0:f8a8c6a8a5c3 5 Sample code from ELEC2645 Week 17 Lab
louismarr 0:f8a8c6a8a5c3 6
louismarr 0:f8a8c6a8a5c3 7 Demonstrates how to re-factor the TMP102 code into a library
louismarr 0:f8a8c6a8a5c3 8
louismarr 0:f8a8c6a8a5c3 9 (c) Craig A. Evans, University of Leeds, Feb 2016
louismarr 0:f8a8c6a8a5c3 10
louismarr 0:f8a8c6a8a5c3 11 */
louismarr 0:f8a8c6a8a5c3 12
louismarr 0:f8a8c6a8a5c3 13 #include "mbed.h"
louismarr 0:f8a8c6a8a5c3 14 // include the library header, ensure the library has been imported into the project
louismarr 0:f8a8c6a8a5c3 15 #include "TMP102.h"
louismarr 0:f8a8c6a8a5c3 16
louismarr 0:f8a8c6a8a5c3 17 // Create TMP102 object
louismarr 0:f8a8c6a8a5c3 18 TMP102 Tmp_I2C(I2C_SDA,I2C_SCL);
louismarr 0:f8a8c6a8a5c3 19 // UART connection for PC
louismarr 0:f8a8c6a8a5c3 20 Serial pc(USBTX,USBRX);
louismarr 0:f8a8c6a8a5c3 21
louismarr 0:f8a8c6a8a5c3 22 // K64F on-board LEDs
louismarr 0:f8a8c6a8a5c3 23 DigitalOut Red_DO(LED_RED);
louismarr 0:f8a8c6a8a5c3 24 DigitalOut Grn_DO(LED_GREEN);
louismarr 0:f8a8c6a8a5c3 25 DigitalOut Blue_DO(LED_BLUE);
louismarr 0:f8a8c6a8a5c3 26 // K64F on-board switches
louismarr 0:f8a8c6a8a5c3 27 InterruptIn Sw2_DI(SW2);
louismarr 0:f8a8c6a8a5c3 28 InterruptIn Sw3_DI(SW3);
louismarr 0:f8a8c6a8a5c3 29
louismarr 0:f8a8c6a8a5c3 30 // error function hangs flashing an LED
louismarr 0:f8a8c6a8a5c3 31 void error();
louismarr 0:f8a8c6a8a5c3 32 // setup serial port
louismarr 0:f8a8c6a8a5c3 33 void init_serial();
louismarr 0:f8a8c6a8a5c3 34 // set-up the on-board LEDs and switches
louismarr 0:f8a8c6a8a5c3 35 void init_K64F();
louismarr 0:f8a8c6a8a5c3 36
louismarr 0:f8a8c6a8a5c3 37 int main()
louismarr 0:f8a8c6a8a5c3 38 {
louismarr 0:f8a8c6a8a5c3 39 // initialise the board and serial port
louismarr 0:f8a8c6a8a5c3 40 init_K64F();
louismarr 0:f8a8c6a8a5c3 41 init_serial();
louismarr 0:f8a8c6a8a5c3 42 // call the sensor init method using dot syntax
louismarr 0:f8a8c6a8a5c3 43 Tmp_I2C.init();
louismarr 0:f8a8c6a8a5c3 44
louismarr 0:f8a8c6a8a5c3 45 while (1) {
louismarr 0:f8a8c6a8a5c3 46
louismarr 0:f8a8c6a8a5c3 47 // read temperature and print over serial port
louismarr 0:f8a8c6a8a5c3 48 float T = Tmp_I2C.get_temperature();
louismarr 0:f8a8c6a8a5c3 49 pc.printf("T = %f K\n",T);
louismarr 0:f8a8c6a8a5c3 50 // small delay - 1s to match the update rate of the sensor (1 Hz)
louismarr 0:f8a8c6a8a5c3 51 wait(1.0);
louismarr 0:f8a8c6a8a5c3 52
louismarr 0:f8a8c6a8a5c3 53 }
louismarr 0:f8a8c6a8a5c3 54
louismarr 0:f8a8c6a8a5c3 55 }
louismarr 0:f8a8c6a8a5c3 56
louismarr 0:f8a8c6a8a5c3 57 void init_serial() {
louismarr 0:f8a8c6a8a5c3 58 // set to highest baud - ensure terminal software matches
louismarr 0:f8a8c6a8a5c3 59 pc.baud(115200);
louismarr 0:f8a8c6a8a5c3 60 }
louismarr 0:f8a8c6a8a5c3 61
louismarr 0:f8a8c6a8a5c3 62 void init_K64F()
louismarr 0:f8a8c6a8a5c3 63 {
louismarr 0:f8a8c6a8a5c3 64 // on-board LEDs are active-low, so set pin high to turn them off.
louismarr 0:f8a8c6a8a5c3 65 Red_DO = 1;
louismarr 0:f8a8c6a8a5c3 66 Grn_DO = 1;
louismarr 0:f8a8c6a8a5c3 67 Blue_DO = 1;
louismarr 0:f8a8c6a8a5c3 68
louismarr 0:f8a8c6a8a5c3 69 // since the on-board switches have external pull-ups, we should disable the internal pull-down
louismarr 0:f8a8c6a8a5c3 70 // resistors that are enabled by default using InterruptIn
louismarr 0:f8a8c6a8a5c3 71 Sw2_DI.mode(PullNone);
louismarr 0:f8a8c6a8a5c3 72 Sw3_DI.mode(PullNone);
louismarr 0:f8a8c6a8a5c3 73
louismarr 0:f8a8c6a8a5c3 74 }