RSS

Keil RTL-ARM 中的用户定时器(user timer)

来源:网络 作者:匿名 时间:2007-01-06 Tag: 点击:

程序中需要定时扫描键盘, 刷新指示灯以及蜂鸣器控制, 但又不想单独开一个任务实现以上的操作, 查看了RTL的帮助文档, 很自然想到了user timer定时器.

OS_ID os_tmr_create (U16 tcnt, U16 info);

    创建一个定时器, tcnt是定时器溢出的系统时间(tick), info 是用以区别不同定时器的编号, 返回 OS_ID是定时器的识别号

OS_ID os_tmr_kill (OS_ID timer);

    删除一个定时器, timer 是 os_tmr_create 返回的那个值

void os_tmr_call (U16 info);

    包含在RTX_Config.c文件中的定时器溢出时调用的函数, 在 os_tmr_call 根据 info 区分不同的定时器. info os_tmr_create 创建时用户给的那个 info.

本来以为定时器可以重复工作, 实现键盘扫描. 实际上只是一个延时处理函数, 定时器溢出后, 会调用 os_tmr_call 函数, 同时系统在定时器队列中将已经溢出的定时器删除. 如果在定时器函数 os_tmr_call 中向任务发送消息等同步信息, 只能调用 isr_开头的函数, 应为从根本上说 os_tmr_call 函数是在系统定时器中断函数中调用的.

现在只能创建一个单独的任务, 来实现定时扫描键盘/指示灯/蜂鸣器控制了.


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载