我正在开展一些项目,我必须处理uc ATxmega128A1,但作为ucontrollers的初学者,我想知道这个关于ucs的频道事件系统是什么。 我已经提到了一个链接http://www.atmel.com/Images/doc8071.pdf但没有得到它。
答案 0 :(得分:6)
渠道系统可以做的传统方式是使用中断。
在中断模型中,CPU运行以main()
开头的代码,并且通常会继续循环。当发生特定事件时,例如按下按钮,CPU将被中断"。当前处理停止,一些寄存器被保存,执行跳转到一个被称为中断处理程序的中断向量指向的代码。此代码通常具有保存寄存器值的指令,这由编译器自动添加。
当中断代码完成时,CPU恢复寄存器先前具有的值,并且执行跳转回主代码中断的位置。
但这种方法需要宝贵的CPU周期。而且一些中断处理程序并不希望触发某些外设采取行动。这样的中断处理程序是否可以避免并让mC让外围设备直接相互通信而不会暂停CPU会不会很好?
这就是事件频道系统的功能。它允许外设直接触发,而不涉及CPU。当通道系统并行操作时,CPU继续执行指令。但这并不意味着您可以替换所有中断处理程序。如果涉及复杂的处理,您仍需要一个处理程序来执行操作。但是通道系统确实允许您避免使用非常简单的中断处理程序。
你引用的论文更详细地描述了这一点(但是对读者的部分假设了许多知识)。您必须阅读mC的实际数据表才能找到确切的详细信息。