打印
[PIC®/AVR®/dsPIC®产品]

ATMEGA4809的RTC定时器使用方法

[复制链接]
27|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RTC定时器可以精确的提供用于钟表计时的周期信号
该芯片也具备内部的RTC时钟模块,可以用来实现精确的低速计时器功能
本示例将演示如何使用内部的低速时钟为RTC提供时钟源,设置为0.5s的定时溢出中断,在中断里翻转LED的IO,实现LED的1Hz周期的闪烁。

注意配置RTC计时器周期有2个选项,第一个是比较器的,第二个是周期的,这里使能的溢出中断对应的是周期信号的,所以是第二个
若配置如下为0.1s周期,则执行LED切换电平的频率为5Hz.

#include "mcc_generated_files/system/system.h"
#include"mcc_generated_files/timer/delay.h"
/*
    Main application
*/
void rtc_handler(void)
{
    YELLOW_LED_Toggle();
}
int main(void)
{
    SYSTEM_Initialize();
    RTC_SetOVFIsrCallback(rtc_handler);
    Enable_global_interrupt();

    while(1)
    {
        if(SW_GetValue())
        {            
//            DELAY_milliseconds(500);
        }
        else
        {
            YELLOW_LED_SetHigh();
        }
    }   
}
接下来讲解Periodic Interrupt Timer使用方法

配置如上所示,使能,设置计数周期,使能周期中断。
然后代码这么写
void rtc_handler(void)
{
    YELLOW_LED_Toggle();
}
int main(void)
{
    SYSTEM_Initialize();
   
    Enable_global_interrupt();
    RTC_SetPITIsrCallback(rtc_handler);   

    while(1)
    {
        if(SW_GetValue())
        {            
        }
        else
        {
            YELLOW_LED_SetHigh();
        }
    }   
}
即可让PIT中断生效。



使用特权

评论回复
沙发
gaoyang9992006|  楼主 | 2025-1-11 16:56 | 只看该作者
那么问题来了,我使用比较器中断,为何没发生中断呢?
MCC中显示应该有3种中断的,为何只有2种生效呢?

在官方的存档中也只展示了其中两种,那么[size=13.008px]Compare Match Interrupt Enable存在吗?
[size=13.008px]该如何使用,这是个问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

1984

主题

16025

帖子

211

粉丝