Hexiwear Program for my Hackster Hexiwear contest entry
Dependencies: Hexi_OLED_SSD1351
main.cpp
- Committer:
- keithm01
- Date:
- 2016-09-15
- Revision:
- 0:6bb49e7332b4
File content as of revision 0:6bb49e7332b4:
#include "mbed.h" #include "Hexi_OLED_SSD1351.h" #include "string.h" #include "images.h" DigitalOut led_green(LED_GREEN); DigitalOut vib(PTB9); Serial eddy(PTD3, PTD2); // tx rx // Connect to the oled SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */ bool armed = false; bool alarm = false; int main() { // Buffer to store label text char text[20]; // Use default properties oled_text_properties_t textProperties = {0}; oled.GetTextProperties(&textProperties); // Fill the screen oled.FillScreen(COLOR_BLACK); const uint8_t *borderImage; borderImage = border_bmp; oled.DrawImage(borderImage,0,20); // Set text color to white and left aligned textProperties.fontColor = COLOR_WHITE; textProperties.alignParam = OLED_TEXT_ALIGN_CENTER; oled.SetTextProperties(&textProperties); const uint8_t *armedImage; armedImage = lock_bmp; const uint8_t *disarmedImage; disarmedImage = unlock_bmp; const uint8_t *alarmImage; alarmImage = alarm_bmp; while (true) { time_t seconds = time(NULL); // Get the time in unix format const tm *t = localtime (&seconds); // Convert the unix time to actual time char* s = "AM"; // The suffix to use for the time of day int h = t->tm_hour; // The hours if (h > 12){ // If it's entering 24/h time, change it to 12/h and add PM s = "PM"; h = h - 12; } // Format the time sprintf(text,"%d:%d %s",h, t->tm_min, s); // Display the time on screen oled.TextBox((uint8_t *)text,2,2, 91, 15); if(alarm){ vib = !vib; oled.DrawImage(alarmImage,0,20); }else{ if(armed){ oled.DrawImage(armedImage,0,20); }else{ oled.DrawImage(disarmedImage,0,20); } } // Flash the green led led_green = !led_green; if(eddy.readable()) { char read = eddy.getc(); if(read == '0'){ armed = false; alarm = false; }else if (read == '1'){ armed = true; alarm = false; }else if (read == '2'){ alarm = true; } } Thread::wait(1000); } }