智能硬件william hill官网
直播中

李骏凌

12年用户 109经验值
私信 关注
[讨论]

【FireBLE试用体验】--wizard学习直播之Timer

定时器是是灰常有用滴,我们回想一下当初玩51的时候,很多时候都是定时/计数,然后进中断,定时/计数,然后进中断。。。。。。
好,那么这块FireBLE如何用定时器呢?我们使用定时器把蓝色LED闪烁。
首先,当然是配置IO口,每个都一样,所以这里不贴图了。(贴图真麻烦啊,嘿嘿)


进入int main()函数,我们一一解读:
1.当然是SystemInit();把系统初始化了先;
2. gpio_init(NULL);
    gpio_set_direction_field(GPIO_P27, GPIO_OUTPUT);
    gpio_write_pin_field(GPIO_P27, GPIO_HIGH);
    这里是初始化gpio,让P2.7口初始状态输出高电平
3.timer_init(QN_TIMER0, led0_link);
    timer_config(QN_TIMER0, TIMER_PSCAL_DIV, TIMER_COUNT_MS(1000, TIMER_PSCAL_DIV));
    timer_enable(QN_TIMER0, MASK_ENABLE);
   配置定时器,包括初始化、寄存器配置、使能,然后。。。。
4.while (1) ;
   死循环。。。。等待进中断
5.那中断函数呢?当然有啦,在timer初始化的时候我们已经定义好中断函数了,没错,就是led0_link,再中断函数中加个IO口的高低变化就能实现蓝色LED的闪烁啦。
   void led0_link(void)
{
    gpio_toggle_pin(GPIO_P27);
}

没了?这下真的没了。但是这里多说一句。。。。例程中的那个进中断LED亮灭,我是真看不出来闪烁了,延时时间太短。。。。我又不是网球王子里的人物。。。。

回帖(1)

约伴故友

2016-3-2 15:19:27
我是比较喜欢贴图的,楼主不喜欢,那我大伙就看不到啦,期待楼主以后多发有贴图这样的贴子,哈哈
举报

更多回帖

发帖
×
20
完善资料,
赚取积分