//******** Display *************** // foreground thread, accepts data from consumer // displays calculated results on the LCD // inputs: none // outputs: none void Display(void){ unsigned long data,voltage; oLED_Message(0,0,"Run length is",(RUNLENGTH)/1000); // top half used for Display while(NumSamples < RUNLENGTH) { oLED_Message(0,1,"Time left is",(RUNLENGTH-NumSamples)/1000); // top half used for Display data = OS_MailBox_Recv(); voltage = 3000*data/1024; // calibrate your device so voltage is in mV oLED_Message(0,2,"v(mV) =",voltage); } OS_Kill(); // done }
//******** Display *************** // foreground thread, accepts data from consumer // displays calculated results on the LCD // inputs: none // outputs: none void Display(void){ unsigned long data,voltage; //OS_DisableInterrupts(); ST7735_Message(0,1,"Run length = ",(RUNLENGTH)/FS); // top half used for Display //OS_EnableInterrupts(); while(NumSamples < RUNLENGTH) { data = OS_MailBox_Recv(); voltage = 3000*data/4095; // calibrate your device so voltage is in mV PE3 = 0x08; ST7735_Message(0,2,"v(mV) =",voltage); PE3 = 0x00; } OS_Kill(); // done }
//******** Display *************** // foreground thread, accepts data from consumer // displays calculated results on the LCD // inputs: none // outputs: none void Display(void){ unsigned long data; char str[20]; sprintf(str, "Run length is %d", RUNLENGTH/1000); OLED_Out(TOP, str); // top half used for Display NumCreated += OS_AddThread(&DisplayThread, 128, 5); while(NumSamples < RUNLENGTH) { // sprintf(str, "Time left is %d", (RUNLENGTH-NumSamples)/1000); // OS_LogEvent(EVENT_OLED_START); // OLED_Out(TOP, str); // top half used for Display // OS_LogEvent(EVENT_OLED_FINISH); data = OS_MailBox_Recv(); voltage = 3000*data/1024; // calibrate your device so voltage is in mV // sprintf(str, "v(mV) = %d", voltage); // OLED_Out(TOP, str); // OS_Delay(OS_ARBITRARY_DELAY); } OLED_Out(BOTTOM, "DONE"); OS_Kill(); // done OS_Delay(OS_ARBITRARY_DELAY); }