Example #1
0
/**
  * @brief Test ACCELERATOR MEMS Hardware.
  *   The main objective of this test is to check acceleration on 2 axis X and Y
  * @param None
  * @retval None
  */
void ACCELERO_MEMS_Test(void)
{
  MEMS_SetHint();

  /* Init Accelerometer Mems */
  if(BSP_ACCELERO_Init() != HAL_OK)
  {
    BSP_LCD_SetTextColor(LCD_COLOR_RED);    
    BSP_LCD_DisplayStringAt(0, 115, (uint8_t*)"Initialization problem", CENTER_MODE); 
    BSP_LCD_DisplayStringAt(0, 130, (uint8_t*)"MEMS cannot be initialized", CENTER_MODE); 
    return;
  }

  while (1)
  {
    ACCELERO_ReadAcc();
    
    if(CheckForUserInput() > 0)
    {
      return;
    }
  }
}
Example #2
0
/**
  * @brief  MEMS demo
  * @param  None
  * @retval None
  */
void MEMS_demo(void)
{
  MEMS_SetHint();
  
  if (BSP_GYRO_Init() != GYRO_OK)
  {
    BSP_LCD_SetBackColor(LCD_COLOR_WHITE); 
    BSP_LCD_SetTextColor(LCD_COLOR_RED);
    BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 95, (uint8_t*)"ERROR", CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 80, (uint8_t*)"MEMS cannot be initialized", CENTER_MODE);
  }
  else
  {
    Gyroscope_DrawBackground(state);
  }
  
  BSP_GYRO_Reset();
  
  while (1)
  {	
    /* Read Gyro Angular data */
    BSP_GYRO_GetXYZ(Buffer);
    
    /* Update autoreload and capture compare registers value */
    Xval = ABS((Buffer[0]));
    Yval = ABS((Buffer[1])); 
    Zval = ABS((Buffer[2])); 
    
    if((Xval>Yval) && (Xval>Zval))
    {
      if(Buffer[0] > 10000.0f)
      { 
        if((state & 1) == 0)
        {
          Gyroscope_DrawBackground(1);			
          state |= 1;
          HAL_Delay(1000);
        }        
      }
      else if(Buffer[0] < -10000.0f)
      { 
        if((state & 2) == 0)
        {          
          Gyroscope_DrawBackground(2);            
          state |= 2;
          HAL_Delay(1000);
        }           
      }      
    }
    else if ((Yval>Xval) && (Yval>Zval))
    {
      if(Buffer[1] < -10000.0f)
      {
        if((state & 4) == 0)
        {                     
          Gyroscope_DrawBackground(4);            
          state |= 4;
          HAL_Delay(1000);
        }   
      }
      else if(Buffer[1] > 10000.0f)
      {
        if((state & 8) == 0)
        {          
          Gyroscope_DrawBackground(8);            
          state |= 8;
          HAL_Delay(1000);
        }
      }     
    } 
    else if ((Zval>Xval) && (Zval>Yval))
    {
      if(Buffer[2] < -10000.0f)
      {
        if((state & 16) == 0)
        {                     
          Gyroscope_DrawBackground(16);            
          state |= 16;
          HAL_Delay(1000);
        }   
      }		 
      else if(Buffer[2] > 10000.0f)
      {
        if((state & 32) == 0)
        {          
          Gyroscope_DrawBackground(32);            
          state |= 32;
          HAL_Delay(1000);			
        }
      }  	
    } 
    if (state != 0x3F)	
    {
    }
    else if (CheckForUserInput() > 0)
    { 
      state = 0;    
      return;
    }
  }
}