查看: 2572|回复: 4

[已解决] 求助:利用定时器实现灯闪烁,代码哪有问题(已解决)

[复制链接]

该用户从未签到

51

主题

307

帖子

0

高级会员

Rank: 4

积分
651
最后登录
2020-9-4
发表于 2013-5-10 14:43:53 | 显示全部楼层 |阅读模式
/*FUNCTION*------------------------------------------------------
*
* Function Name  : LED_on
* Returned Value : none
* Comments       :
*     This timer function prints out "ON"
*END*-----------------------------------------------------------*/
static void LED_on
   (
      _timer_id id,
      pointer data_ptr,
      MQX_TICK_STRUCT_PTR tick_ptr
   )
{
   printf("ON\n");
}
/*FUNCTION*------------------------------------------------------
*
* Function Name  : LED_off
* Returned Value : none
* Comments       :
*     This timer function prints out "OFF"
*END*-----------------------------------------------------------*/
static void LED_off
   (
      _timer_id id,
      pointer data_ptr,
      MQX_TICK_STRUCT_PTR tick_ptr
   )
{
   printf("OFF\n");
}
/*TASK*----------------------------------------------------------
*
* Task Name : main_task
* Comments  :
*     This task creates two timers, each of a period of 2 seconds,
*     the second timer offset by 1 second from the first.
*END*-----------------------------------------------------------*/
void main_task
   (
      uint_32 initial_data
   )
{
   MQX_TICK_STRUCT ticks;
   MQX_TICK_STRUCT dticks;
   _timer_id       on_timer;
   _timer_id       off_timer;
   uint_8          time = 6; // time in seconds
   printf("\n\nTwo timers are created, each of a period of 2 seconds,\nthe second timer offset by 1 second from the first.\n");
   printf("Task runs for %d seconds,\nthen timers are closed and task finishes.\n\n", time);          
   /*
   ** Create the timer component with more stack than the default
   ** in order to handle printf() requirements:
   */
   _timer_create_component(TIMER_TASK_PRIORITY, TIMER_STACK_SIZE);
   _time_init_ticks(&dticks, 0);
   _time_add_sec_to_ticks(&dticks, 2);
   _time_get_elapsed_ticks(&ticks);
   _time_add_sec_to_ticks(&ticks, 1);
   on_timer = _timer_start_periodic_at_ticks(LED_on, 0,
      TIMER_ELAPSED_TIME_MODE, &ticks, &dticks);
   _time_add_sec_to_ticks(&ticks, 1);
   off_timer = _timer_start_periodic_at_ticks(LED_off, 0,
      TIMER_ELAPSED_TIME_MODE, &ticks, &dticks);
   _time_delay(time * 1000); // wait 6 seconds
   printf("\nThe task is finished!");
   _timer_cancel(on_timer);
   _timer_cancel(off_timer);
   _task_block();
}
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

1

主题

178

帖子

0

高级会员

Rank: 4

积分
825
最后登录
1970-1-1
发表于 2013-5-10 15:08:20 | 显示全部楼层

RE:求助:利用定时器实现灯闪烁,代码哪有问题,

这个不就是官方例程的代码么?你能具体说说碰到什么问题吗?
回复 支持 反对

使用道具 举报

该用户从未签到

51

主题

307

帖子

0

高级会员

Rank: 4

积分
651
最后登录
2020-9-4
 楼主| 发表于 2013-5-10 15:28:58 | 显示全部楼层

回复:求助:利用定时器实现灯闪烁,代码哪有问题,

是的,但是LED_on和LED_off程序没有执行,我不知道那的问题
回复 支持 反对

使用道具 举报

该用户从未签到

51

主题

307

帖子

0

高级会员

Rank: 4

积分
651
最后登录
2020-9-4
 楼主| 发表于 2013-5-13 10:35:00 | 显示全部楼层

回复:求助:利用定时器实现灯闪烁,代码哪有问题,

那位大侠给个结果呀。是什么寄存器没初始化呀,还是tick没有启动呀
 
回复 支持 反对

使用道具 举报

该用户从未签到

51

主题

307

帖子

0

高级会员

Rank: 4

积分
651
最后登录
2020-9-4
 楼主| 发表于 2013-5-13 15:57:53 | 显示全部楼层

回复:求助:利用定时器实现灯闪烁,代码哪有问题,

哈哈哈,解决啦,真高兴。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-10-29 00:53 , Processed in 0.105394 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表