物联网项目————M0中断

M0内核PLC11C14的中断和其他arm产品的中断不一样,PLC11C14芯片手册上说有32个中断0-31,其中27号中断保留,0-11共十二个是静态的中断向量,有外部引脚P0端口的,

P0_0到P0_11,一一对应,12号中断由P1_0对应。PLC11C14一共四个端口,P0到P3,其中P0到P2每个端口十二个引脚,P3口四个引脚。

内部中断有四个定时器中断,看门狗中断,串口,SPI,等等。这些也大同小异,但是在最后的有一个中断状态的中断源

28 PIO_3 GPIO interrupt status of port 3
29 PIO_2 GPIO interrupt status of port 2
30 PIO_1 GPIO interrupt status of port 1
31 PIO_0 GPIO interrupt status of port 0

经过仔细研究BSP包内的软件源码,发现上诉四个中断可以监控四个端口,当这些端口中有引脚电位变化时,出发中断,进入中断服务函数,PIOINT0_IRQHandler(void);

在中断中判断是哪个引脚发生了中断

if(GPIOIntStatus(PORT2, 8))

{

//对应PORT2_8端口的中断事件,

}

这样一来所有外部的GPIO,都可以作为外部中断使用,大大提高了资源的利用率,我们可以在下半部机制完成中断处理函数,在中断中只置位标志位,在main()函数中

轮询标志位是否发生变化,发生变化后跳转到对应的下半部处理函数中,这样中断触发后可以很快完成处理,不会在中断中浪费过多资源。

同时我们可以设置触发中断的条件,BSP包中提供了一个函数

GPIOSetInterrupt(PORT2, 8, 1,0, 0 );

GPIOIntEnable(PORT2,8);

对应参数,

第一个端口号;

第二个参数管脚号;

第三个参数电平触发还是跳变沿触发(0为跳变沿触发,1为电平触发);

第四个参数当第三参数设置为跳变沿出发时,0位单边沿触发,1为双边沿触发;当第三参数设置为点评触发是,0代表低电平,1代表高电平。

第五个参数设置上升沿还是下降沿触发,对单边沿触发有效。

上面设置PORT2_8引脚,低电平触发方式。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值