Example #1
0
/**************************************************************************//**
\brief  HAL's event about KEY has changed state.
******************************************************************************/
static void bspKeysInterruptHandler(void)
{
  uint8_t i;

  for (i = 0; i < BSP_BUTTONS_AMOUNT; i++)
  {
    if (bspButtons[i].readPin())
    {
      if (PRESSED == bspButtons[i].action.currentState)
      {
        bspButtons[i].action.currentState = RELEASED;
        bspButtons[i].action.wasReleased = ACT_ON;
        bspPostTask(BSP_BUTTONS);
      }
    }
    else
    {
      if (RELEASED == bspButtons[i].action.currentState)
      {
        bspButtons[i].action.currentState = PRESSED;
        bspButtons[i].action.wasPressed = ACT_ON;
        bspPostTask(BSP_BUTTONS);
      }
    }
  }
}
Example #2
0
/**************************************************************************//**
\brief  BSP's event about KEY has changed state.
******************************************************************************/
void bspButtonsHandler(void)
{
  if (buttonsAction.wasPressed0)
  {
    buttonsAction.wasPressed0 = 0;
    buttonsAction.waitReleased0 = 1;
    if (NULL != bspButtonPressHandle)
      bspButtonPressHandle(BSP_KEY0);
  }

  if (buttonsAction.waitReleased0)
  {
    if (BSP_readKEY0())
    {
      buttonsAction.waitReleased0 = 0;
      buttonsAction.currentState0 = RELEASED;
      if (NULL != bspButtonReleaseHandle)
        bspButtonReleaseHandle(BSP_KEY0);
      HAL_EnableIrq(IRQ_5);
    }
    else
    {
      bspPostTask(BSP_BUTTONS);
    }
  }
}
Example #3
0
/**************************************************************************//**
\brief  HAL's event about KEY has changed state.
******************************************************************************/
void bspKey0InterruptHandler(void)
{
  HAL_DisableIrq(IRQ_5);
  buttonsAction.currentState0 = PRESSED;
  buttonsAction.wasPressed0 = 1;
  bspPostTask(BSP_BUTTONS);
}
/**************************************************************************//**
\brief Reads data from battery sensor.

\param[in]
    data - sensor data.

\return
  BC_SUCCESS - always.
******************************************************************************/
result_t BSP_ReadBatteryData(void (*f)(int16_t data))
{
  readBatteryDataCallback = f;

  bspPostTask(BSP_BATTERY);

  return BC_SUCCESS;
}
/**************************************************************************//**
\brief Reads data from the light sensor.
\param[in]
    result - the result of the requested operation.
             true - operation finished successfully, false - some error has
             occured.
\param[in]
    data - sensor data.

\return
  BC_SUCCESS - always.
******************************************************************************/
result_t BSP_ReadLightData(void (*f)(bool result, int16_t data))
{
  readLightDataCallback = f;

  bspPostTask(BSP_LIGHT);

  return BC_SUCCESS;
}
/**************************************************************************//**
\brief Reads data from the temperature sensor.
\param[in]
    result - the result of the requested operation.
             true - operation finished successfully, false - some error has
             occured.
\param[in]
    data - sensor data.

\return
  BC_SUCCESS - always.
******************************************************************************/
result_t BSP_ReadTemperatureData(void (*f)(bool result, int16_t data))
{
  readTemperatureDataCallback = f;

  bspPostTask(BSP_TEMPERATURE);

  return BC_SUCCESS;
}