什么是频道事件系统?

What is channel event system?

我正在做一些我必须处理 uc ATxmega128A1 的项目,但是作为 ucontrollers 的初学者,我想知道关于 ucs 的通道事件系统是什么。 我已经提交了 link http://www.atmel.com/Images/doc8071.pdf 但没有收到。

通道系统可以做的事情的传统方式是使用中断。

在中断模型中,CPU 运行以 main() 开头的代码,并且通常会继续进行一些循环。当特定事件发生时,例如按下按钮,CPU 为 "interrupted"。当前处理停止,一些寄存器被保存,执行跳转到中断向量指向的一些代码,称为中断处理程序。这段代码通常有保存寄存器值的指令,这是编译器自动添加的。

中断代码完成后,CPU 恢复寄存器先前的值,执行跳回到主代码中被中断的位置。

但是这种方法需要宝贵的 CPU 个周期。并且一些中断处理程序并不太期望触发某些外围设备采取行动。如果可以避免这些类型的中断处理程序并且让 mC 让外围设备直接相互通信而不暂停 CPU,那不是很好吗?

这就是事件通道系统所做的。它允许外设直接相互触发而不涉及CPU。 CPU 继续执行指令,同时通道系统并行运行。不过,这并不意味着您可以替换所有中断处理程序。如果涉及到复杂的处理,还是需要handler来做。但是通道系统确实允许您避免使用非常简单的中断处理程序。

您引用的论文对此进行了更详细的描述(但假定 reader 部分具备很多知识)。您必须阅读 mC 的实际数据表才能找到确切的详细信息。