什么是频道事件系统?

Stu*_*orn 0 microcontroller events avr

我正在某个项目中处理uc ATxmega128A1,但是作为ucontroller的初学者,我想知道关于ucs的此通道事件系统是什么。我引用了一个链接http://www.atmel.com/Images/doc8071.pdf,但没有得到它。

Unc*_*leO 6

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

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

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

但是这种方法需要宝贵的CPU周期。而且一些中断处理程序执行得并不多,期望触发某些外设采取行动。可以避免这些中断处理程序,并且让MC使外设直接相互通信而不中断CPU,这不是很好吗?

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

您所参考的文章对此进行了更为详细的描述(但假设读者有很多知识)。您必须阅读mC的实际数据表才能找到确切的详细信息。