[bsp][nxp][mcxa153] add interrupt process in IRQ Handler functions

This commit is contained in:
hywing 2024-11-26 17:42:50 +08:00 committed by Rbb666
parent 46b2850f12
commit 07999dc84a
2 changed files with 6 additions and 21 deletions

View File

@ -15,7 +15,6 @@
#define LOG_TAG "drv.hwtimer" #define LOG_TAG "drv.hwtimer"
#include <drv_log.h> #include <drv_log.h>
#include <rtdevice.h> #include <rtdevice.h>
#include "drv_hwtimer.h"
#include "fsl_ctimer.h" #include "fsl_ctimer.h"
enum enum
@ -244,39 +243,42 @@ INIT_DEVICE_EXPORT(rt_hw_hwtimer_init);
#ifdef BSP_USING_CTIMER0 #ifdef BSP_USING_CTIMER0
void CTIMER0_IRQHandler(void) void CTIMER0_IRQHandler(void)
{ {
rt_interrupt_enter();
uint32_t int_stat; uint32_t int_stat;
/* Get Interrupt status flags */ /* Get Interrupt status flags */
int_stat = CTIMER_GetStatusFlags(CTIMER0); int_stat = CTIMER_GetStatusFlags(CTIMER0);
/* Clear the status flags that were set */ /* Clear the status flags that were set */
CTIMER_ClearStatusFlags(CTIMER0, int_stat); CTIMER_ClearStatusFlags(CTIMER0, int_stat);
rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM0_INDEX].time_device); rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM0_INDEX].time_device);
rt_interrupt_leave();
} }
#endif /* BSP_USING_HWTIMER0 */ #endif /* BSP_USING_HWTIMER0 */
#ifdef BSP_USING_CTIMER1 #ifdef BSP_USING_CTIMER1
void CTIMER1_IRQHandler(void) void CTIMER1_IRQHandler(void)
{ {
rt_interrupt_enter();
uint32_t int_stat; uint32_t int_stat;
/* Get Interrupt status flags */ /* Get Interrupt status flags */
int_stat = CTIMER_GetStatusFlags(CTIMER1); int_stat = CTIMER_GetStatusFlags(CTIMER1);
/* Clear the status flags that were set */ /* Clear the status flags that were set */
CTIMER_ClearStatusFlags(CTIMER1, int_stat); CTIMER_ClearStatusFlags(CTIMER1, int_stat);
rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM1_INDEX].time_device); rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM1_INDEX].time_device);
rt_interrupt_leave();
} }
#endif /* BSP_USING_HWTIMER1 */ #endif /* BSP_USING_HWTIMER1 */
#ifdef BSP_USING_CTIMER2 #ifdef BSP_USING_CTIMER2
void CTIMER2_IRQHandler(void) void CTIMER2_IRQHandler(void)
{ {
rt_interrupt_enter();
uint32_t int_stat; uint32_t int_stat;
/* Get Interrupt status flags */ /* Get Interrupt status flags */
int_stat = CTIMER_GetStatusFlags(CTIMER2); int_stat = CTIMER_GetStatusFlags(CTIMER2);
/* Clear the status flags that were set */ /* Clear the status flags that were set */
CTIMER_ClearStatusFlags(CTIMER2, int_stat); CTIMER_ClearStatusFlags(CTIMER2, int_stat);
rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM2_INDEX].time_device); rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM2_INDEX].time_device);
rt_interrupt_leave();
} }
#endif /* BSP_USING_HWTIMER2 */ #endif /* BSP_USING_HWTIMER2 */

View File

@ -1,17 +0,0 @@
/*
* Copyright (c) 2006-2024 RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2024-11-26 hywing the first version.
*/
#ifndef DRV_HWTIMER_H__
#define DRV_HWTIMER_H__
int rt_hw_hwtimer_init(void);
#endif /* __DRV_HWTIMER_H__ */