This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.

Dependencies:   RemoteIR

Committer:
sb8718
Date:
Sat May 09 10:13:50 2020 +0000
Revision:
132:e36000d354c6
Parent:
131:8fb226cc407c
Child:
133:278a9afa9e1a
Lab8_1 (well)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sb8718 109:5274dd9bebe1 1 #include "mbed.h"
sb8718 130:d19783810c05 2
sb8718 132:e36000d354c6 3 #define TMP_REG (0x00)
sb8718 132:e36000d354c6 4 #define CONF_REG (0x03)
sb8718 132:e36000d354c6 5 #define ADDR (0x48)
sb8718 132:e36000d354c6 6
sb8718 132:e36000d354c6 7 I2C i2c(I2C_SDA, I2C_SCL);
sb8718 132:e36000d354c6 8 Serial pc(PA_2, PA_3, 115200); //IR receiver D4
sb8718 131:8fb226cc407c 9
sb8718 129:53f2df333d65 10 int main() {
sb8718 132:e36000d354c6 11
sb8718 132:e36000d354c6 12 int status;
sb8718 132:e36000d354c6 13 float temp;
sb8718 132:e36000d354c6 14 char data_write[2];
sb8718 132:e36000d354c6 15 char data_read[2];
sb8718 132:e36000d354c6 16
sb8718 132:e36000d354c6 17 pc.printf("Welcome to I2C Test program\r\n");
sb8718 132:e36000d354c6 18
sb8718 132:e36000d354c6 19 i2c.frequency(100000);
sb8718 132:e36000d354c6 20
sb8718 132:e36000d354c6 21 data_write[0] = CONF_REG;
sb8718 132:e36000d354c6 22 data_write[1] = 0x40;
sb8718 132:e36000d354c6 23 status = i2c.write((ADDR << 1), data_write, 2);
sb8718 132:e36000d354c6 24 if(status != 0) {
sb8718 132:e36000d354c6 25 pc.printf("I2C configuration error!!\r\n");
sb8718 132:e36000d354c6 26 while(1) { }
sb8718 118:88f30fadf08f 27 }
sb8718 132:e36000d354c6 28
sb8718 132:e36000d354c6 29 while(1) {
sb8718 132:e36000d354c6 30 data_write[0] = TMP_REG;
sb8718 132:e36000d354c6 31 i2c.write((ADDR << 1), data_write, 1, 0);
sb8718 132:e36000d354c6 32 i2c.read(((ADDR << 1) | 0x01), data_read, 2, 0);
sb8718 132:e36000d354c6 33
sb8718 132:e36000d354c6 34 int tempval = ((int) data_read[0] << 8) | data_read[1];
sb8718 132:e36000d354c6 35 tempval >>= 3;
sb8718 132:e36000d354c6 36
sb8718 132:e36000d354c6 37 if((tempval & 0x1000) > 0) {
sb8718 132:e36000d354c6 38 temp = (tempval - 8192)/16.0;
sb8718 132:e36000d354c6 39 } else {
sb8718 132:e36000d354c6 40 temp = tempval/16.0;
sb8718 132:e36000d354c6 41 }
sb8718 132:e36000d354c6 42
sb8718 132:e36000d354c6 43 pc.printf("temperature = %.4f\r\n",temp);
sb8718 132:e36000d354c6 44 ThisThread::sleep_for(1000);
sb8718 132:e36000d354c6 45 }
sb8718 132:e36000d354c6 46 }