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

ATMEGA4809的Timer软件定时器使用方法

[复制链接]
41|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


上一贴我们讨论了时钟与硬件定时器的使用方法,本贴讨论外设里面的Timer框架的使用
上一贴内容访问    https://bbs.21ic.com/icview-3426584-1-1.html

Generate,生成了Timer软件框架,注意这里是采用的类似面向对象的方式的结构体。

unsigned int time_num=0;
unsigned int time_**=0;

void time0_handle(void)
{
    time_num++;
    if(time_num>=50)
    {
        time_num=0;
        time_**=1;
    }
}
int main(void)
{
    SYSTEM_Initialize();
    Timer0.TimeoutCallbackRegister(time0_handle);
    Enable_global_interrupt();

    while(1)
    {
        if(SW_GetValue())
        {
            if(time_**==1)
            {
                YELLOW_LED_Toggle();
                time_**=0;
            }            
            //DELAY_milliseconds(500);
        }
        else
        {
            YELLOW_LED_SetHigh();
        }
    }   
}
编写代码,编译并运行,达到想要效果。
根据个人体验,还是直接使用硬件定时器比较好理解。

使用特权

评论回复
沙发
gaoyang9992006|  楼主 | 2025-1-11 14:41 | 只看该作者
离谱我的变量都变成星号了。

使用特权

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

本版积分规则

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

1984

主题

16025

帖子

211

粉丝