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

Dependencies:   RemoteIR

Committer:
sb8718
Date:
Tue May 19 09:19:38 2020 +0000
Revision:
135:03997cc206a4
Parent:
134:139f37fecf3d
Child:
136:53a83b91854c
Lab 11_1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sb8718 109:5274dd9bebe1 1 #include "mbed.h"
sb8718 135:03997cc206a4 2 #include "Adafruit_SSD1306.h"
sb8718 128:29911670c7fd 3
sb8718 135:03997cc206a4 4 #define ADT7420_TEMP_REG (0x00)
sb8718 135:03997cc206a4 5 #define ADT7420_CONF_REG (0x03)
sb8718 135:03997cc206a4 6 #define EVAL_ADT7420_ADDR (0x48)
sb8718 135:03997cc206a4 7
sb8718 135:03997cc206a4 8 I2C i2c(I2C_SDA, I2C_SCL);
sb8718 135:03997cc206a4 9 RawSerial pc(USBTX, USBRX, 115200);
sb8718 135:03997cc206a4 10
sb8718 135:03997cc206a4 11
sb8718 135:03997cc206a4 12 Adafruit_SSD1306_SPI goled(D11, D13, D10, D4, D7, 64, 128);
sb8718 130:d19783810c05 13
sb8718 135:03997cc206a4 14 int main() {
sb8718 135:03997cc206a4 15
sb8718 135:03997cc206a4 16 int status;
sb8718 135:03997cc206a4 17 float temp;
sb8718 135:03997cc206a4 18 char data_write[2];
sb8718 135:03997cc206a4 19 char data_read[2];
sb8718 135:03997cc206a4 20
sb8718 135:03997cc206a4 21 i2c.frequency(100000);
sb8718 135:03997cc206a4 22 data_write[0] = ADT7420_CONF_REG;
sb8718 135:03997cc206a4 23 data_write[1] = 0x40;
sb8718 135:03997cc206a4 24 status = i2c.write((EVAL_ADT7420_ADDR<<1), data_write, 2);
sb8718 135:03997cc206a4 25 if(status!=0) {
sb8718 135:03997cc206a4 26 pc.printf("I2C configuration error!\r\n");
sb8718 135:03997cc206a4 27 while(1){
sb8718 130:d19783810c05 28 }
sb8718 131:8fb226cc407c 29 }
sb8718 135:03997cc206a4 30 goled.clearDisplay();
sb8718 135:03997cc206a4 31 goled.splash();
sb8718 135:03997cc206a4 32 ThisThread::sleep_for(3000);
sb8718 135:03997cc206a4 33 goled.clearDisplay();
sb8718 135:03997cc206a4 34
sb8718 135:03997cc206a4 35 goled.printf("%ux%u OLED Lab. \r\n", goled.width(), goled.height());
sb8718 135:03997cc206a4 36 goled.printf("HGU in Pohang \r\n\r\n");
sb8718 135:03997cc206a4 37
sb8718 135:03997cc206a4 38 while(1) {
sb8718 135:03997cc206a4 39 data_write[0] = ADT7420_TEMP_REG;
sb8718 135:03997cc206a4 40 i2c.write((EVAL_ADT7420_ADDR<<1),data_write,1,0);
sb8718 135:03997cc206a4 41 i2c.read((EAVL_ADT7420_ADDR<<1 | 0x01), data_read, 2, 0);
sb8718 135:03997cc206a4 42
sb8718 135:03997cc206a4 43 int tempval = ((int) data_read[0]<<8 | data_read[1]);
sb8718 135:03997cc206a4 44 tempval >>= 3;
sb8718 135:03997cc206a4 45 if((tempval & 0x1000) > 0) {
sb8718 135:03997cc206a4 46 temp = (tempval - 8192)/16.0;
sb8718 135:03997cc206a4 47 } else {
sb8718 135:03997cc206a4 48 temp = tempval/16.0;
sb8718 135:03997cc206a4 49 }
sb8718 135:03997cc206a4 50
sb8718 135:03997cc206a4 51 pc.printf("Temperature: %0.4f\r\n", temp);
sb8718 135:03997cc206a4 52 goled.printf("Temperature: %0.4f\r\n", temp);
sb8718 135:03997cc206a4 53 goled.display();
sb8718 135:03997cc206a4 54
sb8718 135:03997cc206a4 55 ThisThread::sleep_for(1000);
sb8718 118:88f30fadf08f 56 }
sb8718 135:03997cc206a4 57 }