This commit is contained in:
zhoujie 2026-03-14 10:36:47 +08:00
parent 3b0a03d4b2
commit 0ef14a0ecb
3 changed files with 14 additions and 18 deletions

View File

@ -336,10 +336,10 @@ handle_reset:
li t0, 0x1f li t0, 0x1f
csrw 0xbc0, t0 csrw 0xbc0, t0
/* Enable interrupt nesting and hardware stack */ /* Enable interrupt nesting and hardware stack */
li t0, 0x0b li t0, 0x1f
csrw 0x804, t0 csrw 0x804, t0
/* Enable floating point and global interrupt, configure privileged mode */ /* Enable floating point and global interrupt, configure privileged mode */
li t0, 0x6088 li t0, 0x7800
csrw mstatus, t0 csrw mstatus, t0
/* Configure the interrupt vector table recognition mode and entry address mode */ /* Configure the interrupt vector table recognition mode and entry address mode */
la t0, _vector_base la t0, _vector_base

View File

@ -356,10 +356,10 @@ handle_reset:
li t0, 0x1f li t0, 0x1f
csrw 0xbc0, t0 csrw 0xbc0, t0
/* Enable interrupt nesting and hardware stack */ /* Enable interrupt nesting and hardware stack */
li t0, 0x0b li t0, 0x1f
csrw 0x804, t0 csrw 0x804, t0
/* Enable floating point and global interrupt, configure privileged mode */ /* Enable global interrupt, configure privileged mode */
li t0, 0x6088 li t0, 0x7800
csrw mstatus, t0 csrw mstatus, t0
/* Configure the interrupt vector table recognition mode and entry address mode */ /* Configure the interrupt vector table recognition mode and entry address mode */
la t0, _vector_base la t0, _vector_base

View File

@ -8,7 +8,6 @@
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h" #include "task.h"
#include "timers.h"
#define MAX_TCP_PAYLOAD_SIZE 10240 #define MAX_TCP_PAYLOAD_SIZE 10240
uint8_t g_TxNetBuffer_A_Mem[MAX_TCP_PAYLOAD_SIZE]; uint8_t g_TxNetBuffer_A_Mem[MAX_TCP_PAYLOAD_SIZE];
@ -40,13 +39,8 @@ void OnConfigUpdate(const ConfigCommon_t *common, const Config2D_t *cfg2d, const
#define NG_GPIO_CLK RCC_APB2Periph_GPIOA #define NG_GPIO_CLK RCC_APB2Periph_GPIOA
#define NG_PULSE_MS 200 /* default NG pulse width */ #define NG_PULSE_MS 200 /* default NG pulse width */
static TimerHandle_t g_ng_timer; static volatile uint32_t g_ng_off_time = 0;
extern volatile uint32_t sys_tick_ms;
static void ng_timer_callback(TimerHandle_t xTimer)
{
(void)xTimer;
GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN);
}
static void NG_GPIO_Init(void) static void NG_GPIO_Init(void)
{ {
@ -57,9 +51,6 @@ static void NG_GPIO_Init(void)
gpio.GPIO_Speed = GPIO_Speed_2MHz; gpio.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(NG_GPIO_PORT, &gpio); GPIO_Init(NG_GPIO_PORT, &gpio);
GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN); GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN);
g_ng_timer = xTimerCreate("ng", pdMS_TO_TICKS(NG_PULSE_MS),
pdFALSE, NULL, ng_timer_callback);
} }
void OnDetectionResult(uint32_t frameNumber, uint8_t resultStatus) void OnDetectionResult(uint32_t frameNumber, uint8_t resultStatus)
@ -68,8 +59,7 @@ void OnDetectionResult(uint32_t frameNumber, uint8_t resultStatus)
/* resultStatus: 0 = NG, 1 = OK */ /* resultStatus: 0 = NG, 1 = OK */
if (resultStatus == 0) { if (resultStatus == 0) {
GPIO_SetBits(NG_GPIO_PORT, NG_GPIO_PIN); GPIO_SetBits(NG_GPIO_PORT, NG_GPIO_PIN);
if (g_ng_timer) g_ng_off_time = sys_tick_ms + NG_PULSE_MS;
xTimerStart(g_ng_timer, 0);
} }
} }
@ -222,6 +212,12 @@ static void task_business_entry(void *pvParameters)
while (1) while (1)
{ {
/* NG pulse off check */
if (g_ng_off_time && sys_tick_ms >= g_ng_off_time) {
GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN);
g_ng_off_time = 0;
}
DVP_Task(); DVP_Task();
if (Frame_Ready_Flag) if (Frame_Ready_Flag)