コード例 #1
0
ファイル: Menu.c プロジェクト: masterzdran/semestre5
void Menu_Generic(PVOID course, pOption options[], U8 sizeOf){
  pPercurso percurso = (pPercurso)course;
  U32 currentTime=rtc_getCurrentTime();
  U8 elapsedTime=0;
  U8 idx = 0,bidx = -1;
  KB_Key key;
  
  
  while(1){
    if (bidx != idx){
      LCD_clear();
      LCD_writeLine(0,"Press OK or Next");
      LCD_writeLine(1,options[idx].text);
      bidx = idx;
    }
    if (keyboard_hasKey()){
      currentTime=rtc_getCurrentTime();
      switch(key = keyboard_getBitMap()){
          case OK:
            options[idx].function(percurso);
            break;
          case RIGHT:
          case DOWN:
            idx = __FX0(idx,1,sizeOf); break;
          case LEFT:
          case UP:
            idx = __FX0(idx,-1,sizeOf);    break;
          case CANCEL:
            LCD_clear();
            return;  
          default:
              //do nothing
              break;
      }
      elapsedTime=0;
    }else{
      //no key
      elapsedTime ++;
      
      if(elapsedTime >__WAIT_PERIOD_30_Seconds__){
        LCD_clear(); 
        return;
      }
      timer_sleep_miliseconds(pTIMER1, 200);
    }
    WD_reset();
  }
}
コード例 #2
0
/*********************************************************************
 * @fn      Board_writeStringValue
 *
 * @brief   Write a string and value on the LCD display.
 *
 * @param   str - string to print
 * @param   value - value to print
 * @param   format - base of the value to print (2,8,16 etc)
 * @param   line - line (page) to write (0-7)
 *
 * @return  void
 */
void Board_writeStringValue(char *str, uint32_t value, uint8_t format,
                            uint8_t line)
{
  if (lcdHandle != NULL)
  {
    // Write string and 32-bit number
    LCD_writeLine(lcdHandle, 0, str, value, format, line);
  }
}