#include "mbed.h"
#include "Hexi_OLED_SSD1351.h"
#include "string.h"
int main()
{
char text[40]; /* Text Buffer */
Timer time; /* Instantiate Time */
/* Instantiate the SSD1351 OLED Driver */
SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
/* Get OLED Class Default Text Properties */
oled_text_properties_t textProperties = {0};
oled.GetTextProperties(&textProperties);
/* Turn on the backlight of the OLED Display */
oled.DimScreenON();
/* Fills the screen with solid black */
oled.FillScreen(COLOR_BLACK);
/* Display Text at (x=7,y=0) */
strcpy((char *) text,"Nilakantha");
oled.Label((uint8_t *)text,7,0);
/* Change font color to GREEN */
textProperties.fontColor = COLOR_GREEN;
oled.SetTextProperties(&textProperties);
/* Display text at (x=5,y=25) */
strcpy(text,"Pi=");
oled.Label((uint8_t *)text,5,25);
/* Display text at (x=5,y=55) */
strcpy(text,"Time use=");
oled.Label((uint8_t *)text,5,55);
/* Set text properties to white and right aligned for the dynamic text */
textProperties.fontColor = COLOR_WHITE;
textProperties.alignParam = OLED_TEXT_ALIGN_LEFT;
oled.SetTextProperties(&textProperties);
time.start(); /* start timer */
double pi=3.0;
long i=1;
while (true) {
/* Format the time reading */
sprintf(text,"%f",pi);
/* Display time reading in 90px by 15px textbox at(x=5, y=40) */
oled.TextBox((uint8_t *)text,5,40,90,15); //Increase textbox for more digits
sprintf(text,"%f",time.read());
/* Display time reading in 90px by 15px textbox at(x=5, y=70) */
oled.TextBox((uint8_t *)text,5,70,90,15); //Increase textbox for more digits
Thread::wait(1000);
//pi calculate
if((i%2)==1) {
pi = pi + 4.0/(2.0*i*(2.0*i+1.0)*(2.0*i+2.0));
} else {
pi = pi - 4.0/(2.0*i*(2.0*i+1.0)*(2.0*i+2.0));
}
i++;
}
}
Comments