测试下外部中断,使用开发板上的SW1来测试下降沿触发中断,翻转LED1灯指示。
一、软件配置
1.1、硬件威廉希尔官方网站
SW1使用芯片引脚P005
1.2、配置外部中断
定义名称、中断方式、中断函数,选择中断对应的引脚等参数
配置完成后,生成代码。
二、代码
软件配置完成后,添加中断的代码
2.1、eint.c
#include "hal_data.h"
#include "led.h"
bsp_io_level_t but1_status = BSP_IO_LEVEL_LOW;
void init_eint(void)
{
R_ICU_ExternalIrqOpen(but1.p_ctrl,but1.p_cfg);
R_ICU_ExternalIrqEnable(but1.p_ctrl);
}
void but1_callback(external_irq_callback_args_t *p_args)
{
(void) p_args;
if(but1_status==BSP_IO_LEVEL_LOW)
{
led1_off();
}
else
{
led1_on();
}
but1_status=~ but1_status;
}
2.2、eint.h
#ifndef EINT_H_
#define EINT_H_
void init_eint(void);
#endif
2.3、hal_entry.c
void hal_entry(void)
{
R_BSP_PinAccessEnable();
init_led();
init_eint();
while(1)
{
//led_test();
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
三、程序运行
按下按键时,下降沿触发中断,翻转LED1灯状态。
更多回帖