main相关代码:
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT); // 初始化 clock
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT); // 初始化 clock
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); // 初始化 pin
PINS_DRV_SetPinIntSel(PORTC, 12, PORT_INT_RISING_EDGE); // 设置按键中断
INT_SYS_InstallHandler(PORTC_IRQn, &ptc_handler, (isr_t *)0U); // 安装按键中断
INT_SYS_EnableIRQ(PORTC_IRQn); // 使能按键中断
中断处理函数:
void ptc_handler()
{
uint16_t tmp_key = PINS_DRV_GetPortIntFlag(PORTC) & (1 << 12 ); // 获取portc的中断
if (tmp_key & (1 << 12)) { // 判断是否是key1触发的中断
PINS_DRV_TogglePins(PTD, 1 << 15); // 翻转led2的状态
}
PINS_DRV_ClearPortIntFlagCmd(PORTC); // 清除portc中断的状态
}