如何使用微控制器计算总时间

时间:2014-08-11 18:35:00

标签: c++ c microcontroller atmega

假设我有一个马达。我想计算电机每天运行的时间,并在月末计算电机运行的总时间。如何使用ATmega 32进行此操作?

1 个答案:

答案 0 :(得分:3)

有两种方法可以确定嵌入式系统的时间:

  1. 计算系统滴答声。
  2. 读取实时时钟(RTC)。
  3. 计数系统嘀嗒

    如果您的系统有定时器中断,请在启动电机前读取计数,然后读取计数。减去这两个值并转换为您选择的时基。

    您可能需要修改定时器中断处理程序以使用更大的数据类型,具体取决于中断的频率。

    读取实时时钟

    如果您的嵌入式系统有RTC,则在启动电机之前读取相应的寄存器并在之后读取。相应减去以获得您的持续时间。将持续时间转换为您选择的时基。

    RTC可能位于片上系统(SOC)的外部,或者可能有一个。你有详细信息,我没有。

    计算电机检查

    创建两个积分变量,一个用于电机时间开启,另一个用于电机时间关闭。

    您可以修改定时器ISR以检查电机的状态。

    当ISR确定电机已开启时,按时增加电机 当ISR确定电机关闭时,增加电机关闭时间。

    此方法仅计算电机开启的总时间和电机关闭的总时间。它不如在启动电机和停止电机之前读取系统时间一样准确。