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

Dependencies:   RemoteIR

Committer:
sb8718
Date:
Fri May 22 08:05:14 2020 +0000
Revision:
136:53a83b91854c
Parent:
135:03997cc206a4
Child:
137:81b5a1672c6a
lab 11-2

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 136:53a83b91854c 9 RawSerial pc(PA_2, PA_3, 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 136:53a83b91854c 35 goled.setTextSize(2);
sb8718 136:53a83b91854c 36 goled.printf("OLED Lab.\r\n");
sb8718 136:53a83b91854c 37 goled.setTextSize(1);
sb8718 135:03997cc206a4 38 goled.printf("HGU in Pohang \r\n\r\n");
sb8718 135:03997cc206a4 39
sb8718 136:53a83b91854c 40 int16_t cursor_x = goled.cursor_x;
sb8718 136:53a83b91854c 41 int16_t cursor_y = goled.cursor_y;
sb8718 136:53a83b91854c 42
sb8718 135:03997cc206a4 43 while(1) {
sb8718 136:53a83b91854c 44
sb8718 136:53a83b91854c 45 goled.setTextCursor(cursor_x,cursor_y);
sb8718 136:53a83b91854c 46
sb8718 135:03997cc206a4 47 data_write[0] = ADT7420_TEMP_REG;
sb8718 135:03997cc206a4 48 i2c.write((EVAL_ADT7420_ADDR<<1),data_write,1,0);
sb8718 136:53a83b91854c 49 i2c.read((EVAL_ADT7420_ADDR<<1 | 0x01), data_read, 2, 0);
sb8718 135:03997cc206a4 50
sb8718 135:03997cc206a4 51 int tempval = ((int) data_read[0]<<8 | data_read[1]);
sb8718 135:03997cc206a4 52 tempval >>= 3;
sb8718 135:03997cc206a4 53 if((tempval & 0x1000) > 0) {
sb8718 135:03997cc206a4 54 temp = (tempval - 8192)/16.0;
sb8718 135:03997cc206a4 55 } else {
sb8718 135:03997cc206a4 56 temp = tempval/16.0;
sb8718 135:03997cc206a4 57 }
sb8718 135:03997cc206a4 58
sb8718 135:03997cc206a4 59 pc.printf("Temperature: %0.4f\r\n", temp);
sb8718 135:03997cc206a4 60 goled.printf("Temperature: %0.4f\r\n", temp);
sb8718 135:03997cc206a4 61 goled.display();
sb8718 135:03997cc206a4 62
sb8718 135:03997cc206a4 63 ThisThread::sleep_for(1000);
sb8718 118:88f30fadf08f 64 }
sb8718 135:03997cc206a4 65 }