[活动专区] 赛元易码魔盒体验——8测试拓展板的定时器3/4

[复制链接]
787|3
 楼主| 一路向北lm 发表于 2020-7-15 09:43 | 显示全部楼层 |阅读模式
使用超级魔盒生成一个TIM3的工程,定时器没1ms产生一次中断,在定时器中断服务函数中添加一个计数器,计数到500ms让LED灯翻转。使用魔盒打开TIM3,同时也将LED的P2.4口配置为推挽输出,具体配置如下图
857995f0e5f3506c9c.png


 楼主| 一路向北lm 发表于 2020-7-15 09:44 | 显示全部楼层
生成代码,在SC_it.c文件中找到定时器3的中断服务函数,在中断服务函数内部添加如下代码:其中LED_TOGGLE是自己实现的一个宏,就是对LED的翻转操作。
  1. void Timer3Interrupt()                interrupt 13
  2. {
  3. /*<UserCodeStart>*/
  4. static unsigned int count = 0;
  5.     TXINX = 0x03;   //选择定时器T3
  6.           TFX = 0;        //溢出清零
  7.         count++;
  8.         if(count == 500)
  9.         {
  10.           count = 0;
  11.           LED_TOGGLE;       
  12.         }
  13. /*<UserCodeEnd>*/
  14.     /*Timer3_it write here*/               
  15. }


 楼主| 一路向北lm 发表于 2020-7-15 09:44 | 显示全部楼层
好了,编译运行,竟然没有闪烁,不知怎么回事,仔细查找原因,原来魔盒生成的工程有一部分代码有些问题,将其注释就OK啦!注释TIM3_WorkMode1Config函数中TLX和THX的赋值,这样LED正常翻转运行。此处也算是一个小Bug吧!
574115f0e5f8416102.png
 楼主| 一路向北lm 发表于 2020-7-15 09:44 | 显示全部楼层
本帖最后由 一路向北lm 于 2020-7-15 09:48 编辑

下面也使用魔盒生成了TIM4的工程,同样的问题也是需要将TIM3_WorkMode1Config函数中TLX和THX的赋值注释即可。 614565f0e60517ef38.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部