XMEGA IO口外部中断操作

最近做一个比较有意思的功能,用XMEGA的任意一个空闲的IO以一定的频率输出一个脉冲,控制另外一块XMEGA
跟它保持同步,从而双机都按照同一个频率,同时执行一项操作。


这个不复杂的功能,实现的功能却非常的有意思!如果一台设备可以采集10个外部信号,经过这种简单的操作之后
,可以轻易地采集20个信道,如果以其中一台设备作为HUB,同时对另外的多台设备发送同步信号,理论上便可以
同时让N台设备跟它保持同步,轻易地将信道扩张到10 X N,这简直一个太实用的发现!


由于手头的XMEGA评估板只有一块,于是我将上面应用模型进行简化,用来验证这种功能是切实可行的。
如下图:我将评估板的PC0与PB2直接对接(这两个IO在开发板上都是空闲的,取任意两个其余空闲IO也是可行的)
<ignore_js_op> 


编写相关代码



官方手册关于外部中断触发源的说明


<ignore_js_op> 




测试结果
<ignore_js_op> 

总结:官方库不可尽信,调用官方库设置触发源时,设置下降沿触发,调试发现实质上寄存器设置的是双沿触发,因此统计到了20个脉冲,
这明显是错误的,直接用寄存器来设置的方式,计数到了正确的脉冲数!
posted @ 2015-10-28 15:17  单片怪咖  阅读(738)  评论(0编辑  收藏  举报