假设我有一个马达。我想计算电机每天运行的时间,并在月末计算电机运行的总时间。如何使用ATmega 32进行此操作?
答案 0 :(得分:3)
有两种方法可以确定嵌入式系统的时间:
如果您的系统有定时器中断,请在启动电机前读取计数,然后读取计数。减去这两个值并转换为您选择的时基。
您可能需要修改定时器中断处理程序以使用更大的数据类型,具体取决于中断的频率。
如果您的嵌入式系统有RTC,则在启动电机之前读取相应的寄存器并在之后读取。相应减去以获得您的持续时间。将持续时间转换为您选择的时基。
RTC可能位于片上系统(SOC)的外部,或者可能有一个。你有详细信息,我没有。
创建两个积分变量,一个用于电机时间开启,另一个用于电机时间关闭。
您可以修改定时器ISR以检查电机的状态。
当ISR确定电机已开启时,按时增加电机 当ISR确定电机关闭时,增加电机关闭时间。
此方法仅计算电机开启的总时间和电机关闭的总时间。它不如在启动电机和停止电机之前读取系统时间一样准确。