单片机/MCU论坛
直播中

李斌

7年用户 1404经验值
私信 关注
[问答]

怎样利用ADuC7060的累加器和计数器来计算平均值?如何配置?

请问怎样利用ADuC7060的累加器和计数器来计算平均值?如何配置?当ADC0RCR = ADC0RCV时会产生中断,那请问这是什么中断类型?在哪里配置?
请问“和ADC0RCR配合使用,可屏蔽主通道ADC中断,从而产生较低的中断速率”怎么理解?我怎样才能配合ADc0ACC进行平均值的计算?

回帖(1)

早知

2024-1-15 16:52:55
要利用ADuC7060的累加器和计数器来计算平均值,可以按照以下步骤进行配置和操作:

1. 配置ADC0:

   设置ADC0CON位寄存器的相应位,选择输入通道、参考电压源、采样时间等。

2. 配置累加器功能:

   设置ADC0ACC寄存器为0,用于累加ADC采样结果。

3. 配置计数器功能:

   设置ADC0RCR寄存器的MODE位为累加模式(ACC)或累减模式(DEC),选择累加或累减的方向。

4. 启动ADC:

   设置ADC0CON寄存器的RUN位,启动ADC转换过程。

5. 在中断中处理计算平均值:

   在ADC0RCR = ADC0RCV时会产生中断,通过中断服务程序中对累加器ADC0ACC进行处理,即可计算平均值。

以上是大致的步骤,具体的配置和代码实现需要参考ADuC7060的编程手册和数据表来进行。

关于”和ADC0RCR配合使用,可屏蔽主通道ADC中断,从而产生较低的中断速率“的理解:
在ADuC7060中,ADC0RCR寄存器的MODE位和ADC0RCV寄存器之间的配合使用,可以控制ADC中断的触发条件。当ADC0RCR寄存器的MODE位设为非零值时,ADC0通道的中断将被屏蔽,只有当ADC0RCR寄存器的值等于ADC0RCV寄存器的值时,才会产生中断。这样可以实现较低的中断速率,只在特定条件下触发中断,节省系统资源。

要配合ADC0ACC进行平均值的计算,可以在ADC0中断服务程序中将每次采样获得的结果累加到ADC0ACC寄存器中,同时计数器计数。当达到一定的采样次数后,将累加结果除以采样次数,得到平均值。计算完成后,可以清零ADC0ACC寄存器和计数器,准备下一次的采样和计算。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分