猿小B:继续讲完剩下的三个API
4.绑定引脚中断回调函数:rt_err_t rt_pin_attach_irq(rt_int32_t pin,rt_uint32_t mode,
void(*hdr)(void*args),void *args);
参数: 描述
pin 引脚编号
mode 中断触发模式
hdr 中断回调函数,用户需要自行定义这个函数
args 中断回调函数的参数,不需要时设置为RT_NULL
返回 ——————————
RT_EOK 绑定成功
错误码 绑定失败
——————————————————————————
mode选择:
#define PIN_IRQ_MODE_RISING 0X00/*上升沿触发*/
#define PIN_IRQ_MODE_FALLING 0X01/*下降沿触发*/
#define PIN_IRQ_MODE_RISING_FALLING 0X02/*上下边沿触发*/
#define PIN_IRQ_MODE_HIGH_LEVEL 0X03/*高电平触发*/
#define PIN_IRQ_MODE_LOW_LEVEL 0X04/*低电平触发*/
5.引脚终端使能:rt_err_t rt_pin_irq_enable(rt_base_t pin,rt_uint32_t enabled);
参数: 描述:
pin 引脚编号
enabled 状态,PIN_IRQ_ENABLE(开启) ,PIN_IRQ_ENABLE(关闭)
返回 ——————————————————————
RT_EOK 使能成功
错误码 使能失败
6.脱离引脚中断回调函数: rt_err_t rt_pin_detach_irq(rt_int32_t pin);
参数: 描述:
pin 引脚编号
返回 ——————————————
RT_EOK 脱离成功
错误码 脱离失败
猿小B:到这里API介绍全部完毕,完全手打我再加深一下印象,这里有一点要注意,在RTT中程序的执行只有两种上下文环境,一种是中断,一种是线程,这里并没有出现任何线程相关的内容,所以中断回调函数应该是在中断上下文中,喜欢delay的筒子们注意了。
猿小A:我说你一张图能搞定的非要手打不嫌累呢。。。不过关于上下文环境是个值得深思的问题。
猿小B:。。。