Adafruit FeatherOLED example for the MAX32630FTHR board

Dependencies:   Adafruit_FeatherOLED USBDevice max32630fthr

Dependents:   Bracciale_master Bracciale_slave

Fork of FTHR_USB_serial by Maxim Integrated

Revision:
8:1d48f139567d
Parent:
6:684c51f32c1d
Child:
9:ecdad18f61c2
--- a/main.cpp	Mon Feb 06 23:40:01 2017 +0000
+++ b/main.cpp	Tue Feb 07 23:17:38 2017 +0000
@@ -1,9 +1,14 @@
 #include "mbed.h"
 #include "max32630fthr.h"
+#include "Adafruit_SSD1306.h"
 #include "USBSerial.h"
 
 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
 
+I2C i2c(P3_4, P3_5); // SDA, SCL
+
+Adafruit_SSD1306_I2c featherOLED(i2c, P2_7);  //I2C, RST
+
 // Hardware serial port over DAPLink
 Serial daplink(P2_1, P2_0);
 
@@ -14,11 +19,18 @@
 DigitalOut gLED(LED2);
 DigitalOut bLED(LED3);
 
+AnalogIn ain0(AIN_4);
+AnalogIn ain1(AIN_5);
+AnalogIn ain2(AIN_2);
+AnalogIn ain3(AIN_3);
+
+
 // main() runs in its own thread in the OS
 // (note the calls to Thread::wait below for delays)
 int main()
 {
     int c;
+    c = ' ';
 
     daplink.printf("daplink serial port\r\n");
     microUSB.printf("micro USB serial port\r\n");
@@ -26,13 +38,33 @@
     gLED = LED_ON;
     bLED = LED_OFF;
 
+    featherOLED.printf("%ux%u OLED Display\r\n", featherOLED.width(), featherOLED.height());
+    featherOLED.printf("HelloWorld \r");
+    featherOLED.display();
+
     rLED = LED_OFF;
 
     while(1) {
-        c = microUSB.getc();
-        microUSB.putc(c);
-        daplink.putc(c);
+        Thread::wait(250);
+        if (microUSB.readable()) {
+            c = microUSB.getc();
+            microUSB.putc(c);
+            daplink.putc(c);
+        }
+        if (daplink.readable()) {
+            c = daplink.getc();
+            microUSB.putc(c);
+            daplink.putc(c);
+        }
         bLED = c & 1;
+        featherOLED.clearDisplay();
+        featherOLED.setTextCursor(0,0);
+        featherOLED.printf("MAX32630FTHR OLED\n");
+        featherOLED.printf("AIN0/1: %1.3f, %1.3f\n", (6.0f * ain0), (6.0f * ain1) );  // analog inputs 0,1
+        featherOLED.printf("AIN2/3: %1.3f, %1.3f\n", (1.2f * ain2), (1.2f * ain3) );  // analog inputs 2,3
+        featherOLED.printf("CHAR: %c\n", c);  // character recieved
+        featherOLED.display();
+
     }
 }