CSR1010定时器的使用
来源:互联网 发布:德国世家知乎 编辑:程序博客网 时间:2024/04/28 15:56
熟练使用CSR1010的定时器是十分必要的,因为在后续的蓝牙通信协议的开发中会用到,所以很有必要做一下练习。
这个示例定时3秒,通过uart通信发送通知到PC。因此,要求PC安装一个串口调试工具来查看消息,设置波特率19200,数据位8bit,停止位1,无校验。
使用定时器须知如下几点:
1、引入头文件<timer.h>,<timer.h>头文件定义了定时器函数调用接口,另一个头文件<time.h>定义了一些需要使用的时间常量,已经包含到<timer.h>中。
2、关于定时器初始化函数的使用:
void TimerInit(uint16 max_timers, void *timer_array);
(1)、第一个参数为初始化的定时器数量。
(2)、第二个参数为定时器计数值得存储地址,每个定时器需要常量SIZE_APP_TIMERS个uint16的数组。
3、定时器创建函数的使用:
timer_id TimerCreate(uint32 const time, bool const relative, timer_callback_arg handler);
(1)、返回值为定时器id。
(2)、第一个参数为定时时间长短。
(3)、第二个参数需要设置为TRUE。
(4)、第三个参数为定时完成回调函数,其函数格式如下:
static void timerCallback(timer_id const id);
对上述有一定了解后,程序如下:
#include <main.h>#include <debug.h>#include <timer.h>#include <ls_app_if.h>#define MAX_TIMERS 1#define TIMER_TIMEOUT (3 * SECOND)static uint16 app_timers[SIZEOF_APP_TIMER * MAX_TIMERS];static void timerCallback(timer_id const id);void AppPowerOnReset(void){}void AppInit(sleep_state last_sleep_state){DebugInit(1, NULL, NULL);UartConfig(0x004e, 0x00);UartEnable(TRUE);UartRead(1, 0);TimerInit(MAX_TIMERS, app_timers);TimerCreate(TIMER_TIMEOUT, TRUE, timerCallback);}void AppProcessSystemEvent(sys_event_id id, void *data){}bool AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *event_data){return TRUE;}static void timerCallback(timer_id const id){DebugWriteString("3 seconds passed!\r\n");TimerCreate(TIMER_TIMEOUT, TRUE, timerCallback);}
1 0
- CSR1010定时器的使用
- CSR1010使用UART进行串口通信
- CSR1010 基本信息
- 定时器的使用
- C#定时器的使用
- C#定时器的使用
- java定时器的使用
- 内核定时器的使用
- 定时器的使用
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- 定时器的使用
- C#定时器的使用
- 内核定时器的使用
- 使用glib的定时器
- Linux定时器的使用
- 玩转redis
- SOLARIS10系统开启telnet/FTP/更改主机名称/网卡IP地址
- iOS开发 - 第05篇 - 项目 - 03 - 版本新特性 & OAuth授权
- 十道海量数据处理面试题与十个方法大总结
- 76.Which statement is true about a whole consistent database backup on a database running in ARCHIVE
- CSR1010定时器的使用
- 数组问题练习
- java 基础知识——数据
- JMeter监控内存及CPU ——plugin插件监控被测系统资源方法
- Hive中的正则表达式
- java反射
- Java 输入一个日期,判断是星期几
- 最近点对 HDU5721
- 安卓开发里对应颜色的代码