---vl6180dr
This commit is contained in:
74
App/app.cpp
74
App/app.cpp
@@ -96,9 +96,61 @@ void lightingOff (void)
|
||||
{
|
||||
HAL_GPIO_WritePin(LIGHTING_EN_GPIO_Port, LIGHTING_EN_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
uint8_t proximityCompleteMessure = 0;
|
||||
void proximityMessureCompleted (void)
|
||||
{
|
||||
proximityCompleteMessure = 1;
|
||||
}
|
||||
|
||||
|
||||
VL6180_RangeData_t VL6180_Range;
|
||||
uint32_t waitAnsweredMs = 0;
|
||||
#define MAX_WAIT_ANSWER_FROM_GM60 10000
|
||||
#define DATA_TIMEOUT 500
|
||||
|
||||
uint32_t lightStartMs = 0;
|
||||
|
||||
|
||||
uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
||||
{
|
||||
if (waitAnsweredMs != 0)
|
||||
{
|
||||
if (HAL_GetTick() - waitAnsweredMs >= MAX_WAIT_ANSWER_FROM_GM60 )
|
||||
{
|
||||
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_SET );
|
||||
HAL_Delay(500);
|
||||
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_RESET );
|
||||
waitAnsweredMs = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
|
||||
waitAnsweredMs = HAL_GetTick();
|
||||
temp[1] = bridge.uart1Buf->dequeue();
|
||||
HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
|
||||
temp[2] = bridge.uart2Buf->dequeue();
|
||||
HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
void AppTask(void)
|
||||
{
|
||||
if (!updateMode) {
|
||||
if (uartTask() == 0)
|
||||
{
|
||||
|
||||
}
|
||||
if (HAL_GetTick() - lightStartMs >= 10000)
|
||||
{
|
||||
lightStartMs = 0;
|
||||
lightingOff();
|
||||
}
|
||||
if (HAL_GPIO_ReadPin(CONTROL_PIN_GPIO_Port, CONTROL_PIN_Pin) == GPIO_PIN_SET) {
|
||||
if (controlPinFlag == 0)
|
||||
{
|
||||
@@ -122,14 +174,20 @@ void AppTask(void)
|
||||
//////ZUMMER OFF
|
||||
}
|
||||
}
|
||||
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
|
||||
temp[1] = bridge.uart1Buf->dequeue();
|
||||
HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1);
|
||||
}
|
||||
|
||||
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
|
||||
temp[2] = bridge.uart2Buf->dequeue();
|
||||
HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1);
|
||||
if (bridge.uart1Buf->is_empty() && bridge.uart2Buf->is_empty())
|
||||
{
|
||||
if (proximityCompleteMessure == 1)
|
||||
{
|
||||
proximityCompleteMessure = 0;
|
||||
if (getRange(&VL6180_Range) == 0)
|
||||
{
|
||||
if (VL6180_Range.range_mm > 0 && lightStartMs == 0)
|
||||
{
|
||||
lightStartMs = uwTick;
|
||||
lightingOn();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user