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

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

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


上一贴我们讨论了时钟与硬件定时器的使用方法,本贴讨论外设里面的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 | 只看该作者
离谱我的变量都变成星号了。

使用特权

评论回复
板凳
598330983| | 2025-1-12 17:57 | 只看该作者
直接只需要一条绑定中断处理函数的指令就行了,真简单,学会了。

使用特权

评论回复
地板
天灵灵地灵灵| | 2025-1-14 11:53 | 只看该作者
这种适合跑RTOS不,定时器也可以用于周期执行任务。

使用特权

评论回复
5
antusheng| | 2025-1-16 11:40 | 只看该作者
看了好多内容,就你的贴有有用的内容

使用特权

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

本版积分规则

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

1989

主题

16041

帖子

211

粉丝