正如问题所说,我想为数字输入引脚实现ICN(输入变更通知)。
我使用的是dsPic33EP512GM604。
我配置了Pin< 22> RB1作为输入引脚。
红外传感器连接到同一个引脚。每当Sensor检测到一个物体(发送高信号)时,我正在寻找一种方法(轮询除外)来获得中断。
在浏览设备Datasheet时,我发现了一项功能输入更改通知(ICN)。
它说:
“I / O端口的输入变化通知功能允许设备响应所选输入引脚上的状态变化(COS)而向处理器发出中断请求。此功能可以检测输入变化 - 状态(COS),即使在禁用时钟时处于休眠模式。可以选择(使能)每个I / O端口引脚,以便在状态改变时产生中断请求。“
我试图搜索有关其实施的更多信息,但找不到任何信息。
任何人都可以指导我实现它的方式或分享我解释其实现或相关信息的链接???
答案 0 :(得分:1)
您需要一般的dspic33e手册(每个外围设备在单独文件中有章节的手册)。
尝试类似
的内容 CNENBbits.CNIEB1 = 1; // Enable RB1 pin for interrupt detection
_CNIP=7; // priority (7 = highest)
_CNIE = 1; // Enable CN interrupts
_CNIF = 0; // clear interrupt flag
并按照以下方式定义_CN中断例程:
void __attribute__((__interrupt__, no_auto_psv)) _CNInterrupt(void)
{
_CNIF = 0;
}
如果为多个引脚启用CN,则必须轮询中断中的引脚以确定哪个引脚被激活。