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

Dependencies:   RemoteIR

Revision:
135:03997cc206a4
Parent:
134:139f37fecf3d
Child:
136:53a83b91854c
--- a/main.cpp	Tue May 19 07:58:35 2020 +0000
+++ b/main.cpp	Tue May 19 09:19:38 2020 +0000
@@ -1,51 +1,57 @@
 #include "mbed.h"
-#include "ReceiverIR.h"
+#include "Adafruit_SSD1306.h"
 
-Serial pc(PA_2, PA_3, 115200); //IR receiver D4
-ReceiverIR ir_rx(D3);
+#define ADT7420_TEMP_REG (0x00)
+#define ADT7420_CONF_REG (0x03)
+#define EVAL_ADT7420_ADDR (0x48)
+
+I2C i2c(I2C_SDA, I2C_SCL);
+RawSerial pc(USBTX, USBRX, 115200);
+
+
+Adafruit_SSD1306_SPI goled(D11, D13, D10, D4, D7, 64, 128);
 
-void display_data(uint8_t *buf, int bitlength) {
-    const int n = bitlength / 8 + (((bitlength % 8) != 0) ? 1 : 0);
-    for (int i = 0; i < n; i++) {
-        pc.printf("%02X", buf[i]);
-    }
-    for (int i = 0; i < 8 - n; i++) {
-        pc.printf("--");
-    }
-}
-int receive(RemoteIR::Format *format, uint8_t *buf, int bufsiz, int timeout = 100) {
-    int cnt = 0;
-    while (ir_rx.getState() != ReceiverIR::Received) {
-        cnt++;
-        if (timeout < cnt) {
-            return -1;
+int main() {
+ 
+    int status;
+    float temp;
+    char data_write[2];
+    char data_read[2];
+    
+    i2c.frequency(100000);
+    data_write[0] = ADT7420_CONF_REG;
+    data_write[1] = 0x40;
+    status = i2c.write((EVAL_ADT7420_ADDR<<1), data_write, 2);
+    if(status!=0) {
+        pc.printf("I2C configuration error!\r\n");
+        while(1){
         }
     }
-    return ir_rx.getData(format, buf, bufsiz * 8);
-}
- 
-
-int main() {
-      
-      pc.printf("\r\n\r\n\r\n\r\nStart!!\r\n");
-      
-    while (1) {
-        RemoteIR::Format format;
-            uint8_t buf[32];
-            int bitcount;
-//            if (ir_rx.getState() == ReceiverIR::Received) {
-//                bitcount = ir_rx.getData(&format, buf, sizeof(buf));
-//            }
-            
-            bitcount = receive(&format, buf, sizeof(buf));
-            if (bitcount < 0) {
-                continue;
-            }
-            
-            display_data(buf, bitcount);
-            
-            
+    goled.clearDisplay();
+    goled.splash();
+    ThisThread::sleep_for(3000);
+    goled.clearDisplay();
+    
+    goled.printf("%ux%u OLED Lab. \r\n", goled.width(), goled.height());
+    goled.printf("HGU in Pohang \r\n\r\n");
+    
+    while(1) {
+        data_write[0] = ADT7420_TEMP_REG;
+        i2c.write((EVAL_ADT7420_ADDR<<1),data_write,1,0);
+        i2c.read((EAVL_ADT7420_ADDR<<1 | 0x01), data_read, 2, 0);
+        
+        int tempval = ((int) data_read[0]<<8 | data_read[1]);
+        tempval >>= 3;
+        if((tempval & 0x1000) > 0) {
+            temp = (tempval - 8192)/16.0;
+        } else {
+            temp = tempval/16.0;
+        }
+        
+        pc.printf("Temperature: %0.4f\r\n", temp);
+        goled.printf("Temperature: %0.4f\r\n", temp);
+        goled.display();
+        
+        ThisThread::sleep_for(1000);
     }
-}
-
-
+}
\ No newline at end of file