hexiwear RTC display Serial

Dependencies:   Hexi_KW40Z Hexi_OLED_SSD1351 mbed

Committer:
i_am_kitsune
Date:
Tue Sep 05 01:49:30 2017 +0000
Revision:
0:64ad287703be
Hexiwear display RTC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
i_am_kitsune 0:64ad287703be 1 /*
i_am_kitsune 0:64ad287703be 2 CREATED BY JAICHANGPARK AKA DREAMWALKER
i_am_kitsune 0:64ad287703be 3 DATE : 2017. 06. 28
i_am_kitsune 0:64ad287703be 4
i_am_kitsune 0:64ad287703be 5 */
i_am_kitsune 0:64ad287703be 6
i_am_kitsune 0:64ad287703be 7 #include "mbed.h"
i_am_kitsune 0:64ad287703be 8 #include "Hexi_OLED_SSD1351.h"
i_am_kitsune 0:64ad287703be 9 #include "Hexi_KW40Z.h"
i_am_kitsune 0:64ad287703be 10 #include "string.h"
i_am_kitsune 0:64ad287703be 11 #include "MTCH6102.h"
i_am_kitsune 0:64ad287703be 12
i_am_kitsune 0:64ad287703be 13
i_am_kitsune 0:64ad287703be 14 DigitalOut led1(LED1);
i_am_kitsune 0:64ad287703be 15
i_am_kitsune 0:64ad287703be 16 /**
i_am_kitsune 0:64ad287703be 17 * HEXIWEAR SERIAL PORT
i_am_kitsune 0:64ad287703be 18 TX : PTD3, USBTX(WITH PC)
i_am_kitsune 0:64ad287703be 19 RX : PTD2, USBRX(WITH PC)
i_am_kitsune 0:64ad287703be 20 **/
i_am_kitsune 0:64ad287703be 21
i_am_kitsune 0:64ad287703be 22 Serial serial(USBTX,USBRX,9600); //(TX, RX)
i_am_kitsune 0:64ad287703be 23
i_am_kitsune 0:64ad287703be 24 /*
i_am_kitsune 0:64ad287703be 25 HEXIWEAR OLED INTERNAL DISPLAY PIN
i_am_kitsune 0:64ad287703be 26 MOSI(SDI) : PTB22
i_am_kitsune 0:64ad287703be 27 SCLK(SCK) : PTB21
i_am_kitsune 0:64ad287703be 28 POWER : PTC13 ( INTERNAL POWER PORT)
i_am_kitsune 0:64ad287703be 29 CS : PTB20
i_am_kitsune 0:64ad287703be 30 RST : PTE6
i_am_kitsune 0:64ad287703be 31 DC : PTD15
i_am_kitsune 0:64ad287703be 32 */
i_am_kitsune 0:64ad287703be 33 SSD1351 display(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15);
i_am_kitsune 0:64ad287703be 34
i_am_kitsune 0:64ad287703be 35 /*
i_am_kitsune 0:64ad287703be 36 KW40Z INIT
i_am_kitsune 0:64ad287703be 37 UART4
i_am_kitsune 0:64ad287703be 38 TX : PTE24
i_am_kitsune 0:64ad287703be 39 RX : PTE25
i_am_kitsune 0:64ad287703be 40 */
i_am_kitsune 0:64ad287703be 41
i_am_kitsune 0:64ad287703be 42 KW40Z kw40z_device(PTE24, PTE25);
i_am_kitsune 0:64ad287703be 43
i_am_kitsune 0:64ad287703be 44 // main() runs in its own thread in the OS
i_am_kitsune 0:64ad287703be 45 int main() {
i_am_kitsune 0:64ad287703be 46
i_am_kitsune 0:64ad287703be 47 char time_text[20];
i_am_kitsune 0:64ad287703be 48 char date_text[25];
i_am_kitsune 0:64ad287703be 49
i_am_kitsune 0:64ad287703be 50 // Use default properties
i_am_kitsune 0:64ad287703be 51 oled_text_properties_t textProperties = {0};
i_am_kitsune 0:64ad287703be 52 display.GetTextProperties(&textProperties);
i_am_kitsune 0:64ad287703be 53 display.FillScreen(COLOR_BLACK);
i_am_kitsune 0:64ad287703be 54
i_am_kitsune 0:64ad287703be 55 textProperties.fontColor = COLOR_WHITE;
i_am_kitsune 0:64ad287703be 56 textProperties.alignParam = OLED_TEXT_ALIGN_CENTER;
i_am_kitsune 0:64ad287703be 57 display.SetTextProperties(&textProperties);
i_am_kitsune 0:64ad287703be 58
i_am_kitsune 0:64ad287703be 59 while (true) {
i_am_kitsune 0:64ad287703be 60
i_am_kitsune 0:64ad287703be 61 time_t seconds = time(NULL);
i_am_kitsune 0:64ad287703be 62 const tm *t = localtime(&seconds); // Convert the unix time to actual time
i_am_kitsune 0:64ad287703be 63 char* s = "AM"; // The suffix to use for the time of day
i_am_kitsune 0:64ad287703be 64 int h = (t->tm_hour) + 18; // The hours
i_am_kitsune 0:64ad287703be 65 int year = (t->tm_year) + 1947;
i_am_kitsune 0:64ad287703be 66 if (h > 12){ // If it's entering 24/h time, change it to 12/h and add PM
i_am_kitsune 0:64ad287703be 67 s = "PM";
i_am_kitsune 0:64ad287703be 68 h = h - 12;
i_am_kitsune 0:64ad287703be 69 }
i_am_kitsune 0:64ad287703be 70
i_am_kitsune 0:64ad287703be 71 // Format the time
i_am_kitsune 0:64ad287703be 72 sprintf(time_text,"%d:%d:%d %s",h, t->tm_min, t->tm_sec, s);
i_am_kitsune 0:64ad287703be 73 sprintf(date_text,"%d-%d-%d",year, (t->tm_mon)+6, (t->tm_mday)+27);
i_am_kitsune 0:64ad287703be 74
i_am_kitsune 0:64ad287703be 75 serial.printf(time_text);
i_am_kitsune 0:64ad287703be 76 serial.printf("\n");
i_am_kitsune 0:64ad287703be 77 serial.printf(date_text);
i_am_kitsune 0:64ad287703be 78 serial.printf("\n");
i_am_kitsune 0:64ad287703be 79
i_am_kitsune 0:64ad287703be 80 // Display the time on screen
i_am_kitsune 0:64ad287703be 81 // oled_status_t SSD1351::TextBox(const uint8_t* text, int8_t xCrd, int8_t yCrd,uint8_t width,uint8_t height)
i_am_kitsune 0:64ad287703be 82 display.TextBox((uint8_t *)time_text,2,2, 91, 15);
i_am_kitsune 0:64ad287703be 83 display.TextBox((uint8_t *)date_text,2,16, 91, 15);
i_am_kitsune 0:64ad287703be 84 led1 = !led1;
i_am_kitsune 0:64ad287703be 85 wait(0.5);
i_am_kitsune 0:64ad287703be 86 }
i_am_kitsune 0:64ad287703be 87 }
i_am_kitsune 0:64ad287703be 88
i_am_kitsune 0:64ad287703be 89 void edited_time(){
i_am_kitsune 0:64ad287703be 90
i_am_kitsune 0:64ad287703be 91 char buffer[32];
i_am_kitsune 0:64ad287703be 92 time_t init_time = time(NULL);
i_am_kitsune 0:64ad287703be 93 strftime(buffer, 32, "%I:%M %p\n", localtime(&init_time));
i_am_kitsune 0:64ad287703be 94 printf("Time as a custom formatted string = %s", buffer);
i_am_kitsune 0:64ad287703be 95
i_am_kitsune 0:64ad287703be 96 }
i_am_kitsune 0:64ad287703be 97