Rev 1.6 - Sample Period Work in progress

Dependencies:   mbed Bitmap N5110 TMP102 Joystick

Committer:
louismarr
Date:
Tue Dec 14 14:24:31 2021 +0000
Revision:
5:138a91e25e1c
Parent:
4:891e1b0fbd1e
Child:
6:117edd5dc0a0
Rev 1.3 - C.Evans Library used

Who changed what in which revision?

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