vxworks系统创建辅助定时器

第一步: 编译内核,改变内核时钟频率的最大值,改变宏定义AUX_CLK_RATE_MAX的值,确保可以发生100微妙频率的定时任务

c7c9c07517b4434693a27e5e64fd6e46.jpg

 第二步: 编写代码函数

#define SYS_TIMER MAX 720000

#define SYS_TIMER FERIOD 10000  //1s触发10000次,100微妙一次

static unsigned long timer_cnt = 0;

void time_isr (void){

    timer_cnt ++;

   if( 0 == proc_state ) proc_state == 1;

}

void aux_ timer_init( void){
    sysAuxClkDisable():
    sysAuxClkConnect((FUNCPTR)timer_isr,0);
    sysAuxClkRateSet( SYS_TIMER_PERIOD);
    sysAuxClkEnable();

}

在系统初始化任务函数里添加辅助定时器初始化函数即可

加载内核,启动初始化任务,定时器开始工作

第三步,验证辅助定时器函数

if( taskSpawn( "aux_timer_isr",60,0,2000,(FUNCPTR)aux_timer_init, 0,0,0,0,0,0,0,0,
0,0)== TASK_ID_NULL){
while(1){
        logMsg("timer_cnt is %d..\n", timer_cnt, 1,2,3,4,5);
       taskDelay( sysClkRateGet());/*延时1s*/

     }

}

手动启动验证任务后,查看延时1s后cnt数值变化来验证辅助时钟触发的频率
 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俺要成为石专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值