/************************************************************************************//** ** \brief Toggles the LED at a fixed time interval. ** \return none. ** ****************************************************************************************/ void LedToggle(void) { static unsigned char led_toggle_state = 0; static unsigned long timer_counter_last = 0; unsigned long timer_counter_now; /* check if toggle interval time passed */ timer_counter_now = TimerGet(); if ( (timer_counter_now - timer_counter_last) < LED_TOGGLE_MS) { /* not yet time to toggle */ return; } /* determine toggle action */ if (led_toggle_state == 0) { led_toggle_state = 1; /* turn the LED on */ LCD_Symbol(LCD, LCD_SYMBOL_OLIMEX, 1); } else { led_toggle_state = 0; /* turn the LED off */ LCD_Symbol(LCD, LCD_SYMBOL_OLIMEX, 0); } /* store toggle time to determine next toggle interval */ timer_counter_last = timer_counter_now; } /*** end of LedToggle ***/
void vLCDTask( void *pvParameters ) { long x; LCD_TypeDef *xLCD = LCD; char *pcScrollText = "FreeRTOS Energy Micro "; /* Loop through various different displays. */ for( ;; ) { /* Start by scrolling some text. */ LCD_ScrollText( xLCD, pcScrollText ); LCD_AllOff( xLCD ); /* Count down from 100 on the number section of the LCD display. */ for( x = 100; x > 0; x--) { LCD_Number( xLCD, x ); vTaskDelay( 10 ); } LCD_NumberOff( xLCD ); /* Turn on gecko and EFM32 symbol. */ LCD_Symbol( xLCD, LCD_SYMBOL_GECKO, 1 ); LCD_Symbol( xLCD, LCD_SYMBOL_EFM32, 1 ); LCD_Write( xLCD, " Gecko " ); vTaskDelay( lcdONE_SECOND ); LCD_AllOn( xLCD); vTaskDelay( lcdONE_SECOND ); LCD_AllOff( xLCD); LCD_Write( xLCD, "OOOOOOO" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, "XXXXXXX" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, "+++++++" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, "@@@@@@@" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, "ENERGY " ); vTaskDelay( lcdQUARTER_SECOND ); LCD_Write( xLCD, "@@ERGY " ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " @@RGY " ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " M@@GY " ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " MI@@Y " ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " MIC@@ " ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " MICR@@" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " MICRO@" ); vTaskDelay( lcdSHORT_DELAY ); LCD_Write( xLCD, " MICRO " ); vTaskDelay( lcdQUARTER_SECOND ); LCD_Write( xLCD, "-EFM32-" ); vTaskDelay( lcdQUARTER_SECOND ); } }