--upd
This commit is contained in:
@@ -7,7 +7,7 @@ set(CMAKE_OBJDUMP arm-none-eabi-objdump)
|
||||
set(SIZE arm-none-eabi-size)
|
||||
|
||||
#///////////////////////////////////USER CAN SET VARIABLES HERE
|
||||
|
||||
set (FW_VERSION 1.0)
|
||||
#///////////////////////////////////USER CAN SET VARIABLES HERE
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ set(INCLUDE_DIR
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
|
||||
add_compile_definitions(FW_VERSION="${FW_VERSION}")
|
||||
|
||||
# uncomment to mitigate c++17 absolute addresses warnings
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register")
|
||||
|
||||
25
main_prog/Core/Inc/reader_communication.h
Normal file
25
main_prog/Core/Inc/reader_communication.h
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Created by Professional on 8/9/2023.
|
||||
//
|
||||
|
||||
#ifndef MYPROJECT_READER_COMMUNICATION_H
|
||||
#define MYPROJECT_READER_COMMUNICATION_H
|
||||
#include "stdint-gcc.h"
|
||||
typedef enum command_enum{
|
||||
LIGHT_ON = 0xF0,
|
||||
LIGHT_OFF,
|
||||
ZUMMER_ON,
|
||||
ZUMMER_OFF,
|
||||
ENTER_FIRMWARE_UPDATE,
|
||||
EXIT_FIRMWARE_UPDATE,
|
||||
GET_FIRMWARE_VERSION
|
||||
};
|
||||
|
||||
typedef struct command_t {
|
||||
uint8_t numOfCommand;
|
||||
uint16_t data1; //data1
|
||||
uint16_t data2; //data2
|
||||
uint8_t data3; //data3
|
||||
} ;
|
||||
|
||||
#endif //MYPROJECT_READER_COMMUNICATION_H
|
||||
@@ -6,7 +6,7 @@
|
||||
#define READER_MAIN_PROG_UART_BRIDGE_HPP
|
||||
#include "circular_buffer.hpp"
|
||||
#include "usart.h"
|
||||
|
||||
#include "reader_communication.h"
|
||||
#define BUF_SIZE 1024U
|
||||
#define MAX_QUEUE 16
|
||||
|
||||
@@ -15,8 +15,8 @@ class UartBridge{
|
||||
public:
|
||||
UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, uint16_t baudRate1,
|
||||
uint16_t baudRate2);
|
||||
Circular_Buffer<std::string_view> *uart1Buf;
|
||||
Circular_Buffer<std::string_view> *uart2Buf;
|
||||
Circular_Buffer<std::string_view> uart1Buf;
|
||||
Circular_Buffer<std::string_view> uart2Buf;
|
||||
bool isTurnOn() const;
|
||||
void setTurnOn(bool isTurnOn);
|
||||
volatile uint8_t dataFromUart1[BUF_SIZE];
|
||||
|
||||
@@ -20,14 +20,14 @@ extern "C" void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t S
|
||||
if (Size < 4)
|
||||
return;
|
||||
std::string_view stringView{(const char *) bridgePnt->dataFromUart1, Size};
|
||||
bridgePnt->uart1Buf->enqueue(stringView);
|
||||
bridgePnt->uart1Buf.enqueue(stringView);
|
||||
} else if (huart == bridgePnt->getHuart2()) {
|
||||
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart2(), (uint8_t *) bridgePnt->dataFromUart2, BUF_SIZE);
|
||||
|
||||
if (Size < 4)
|
||||
return;
|
||||
std::string_view stringView{(const char *) bridgePnt->dataFromUart2, Size};
|
||||
bridgePnt->uart2Buf->enqueue(stringView);
|
||||
bridgePnt->uart2Buf.enqueue(stringView);
|
||||
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ extern "C" void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t S
|
||||
UartBridge::UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, uint16_t baudRate1,
|
||||
uint16_t baudRate2) : turnOn(isOn),
|
||||
uart1(uart1),
|
||||
uart2(uart2) {
|
||||
uart2(uart2),
|
||||
uart1Buf(Circular_Buffer<std::string_view>(MAX_QUEUE)),
|
||||
uart2Buf(Circular_Buffer<std::string_view>(MAX_QUEUE)){
|
||||
bridgePnt = this;
|
||||
UartBridge::uart1Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||
UartBridge::uart2Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||
uart1Handle.Instance = uart1;
|
||||
uart1Handle.Init.BaudRate = baudRate1;
|
||||
uart1Handle.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
|
||||
@@ -71,10 +71,8 @@ uint16_t range; /* range average distance */
|
||||
#define AlarmKeepDispTime 250 /* alarm message retain time after it fires */
|
||||
volatile int IntrFired=0;
|
||||
|
||||
extern volatile uint32_t SensorsEnabled;
|
||||
|
||||
|
||||
|
||||
uint8_t inited = 0;
|
||||
void AbortErr( const char * msg ){
|
||||
State.mode= WaitForReset;
|
||||
}
|
||||
@@ -87,12 +85,17 @@ void DoScalingSwap(int scaling){
|
||||
uint8_t allowIT = 0;
|
||||
void vl6180_init (void)
|
||||
{
|
||||
|
||||
allowIT = 0;
|
||||
HAL_GPIO_WritePin(CS_PROXIMITY_GPIO_Port, CS_PROXIMITY_Pin, GPIO_PIN_RESET);
|
||||
HAL_Delay(200);
|
||||
HAL_GPIO_WritePin(CS_PROXIMITY_GPIO_Port, CS_PROXIMITY_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(200);
|
||||
VL6180_WaitDeviceBooted(theVL6180Dev);
|
||||
if (VL6180_WaitDeviceBooted(theVL6180Dev) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
inited = 1;
|
||||
VL6180_InitData(theVL6180Dev);
|
||||
State.InitScale=VL6180_UpscaleGetScaling(theVL6180Dev);
|
||||
State.FilterEn=VL6180_FilterGetState(theVL6180Dev);
|
||||
@@ -286,5 +289,7 @@ uint8_t vl6180_single_shot ()
|
||||
|
||||
int32_t vl6180_is_ready ()
|
||||
{
|
||||
if (inited < 0)
|
||||
return -1;
|
||||
return VL6180_RangeWaitDeviceReady(theVL6180Dev, 3);
|
||||
}
|
||||
Reference in New Issue
Block a user