硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5547|回复: 10
收起左侧

[RL-RTX] 硬件定时器可以在操作系统下进行中断吗

[复制链接]

12

主题

27

回帖

63

积分

初级会员

积分
63
发表于 2016-2-26 10:43:29 | 显示全部楼层 |阅读模式
因为需要驱动步进电机,所以必须用到硬件定时器,最大的脉冲输出频率需要到100K左右,以前都是裸奔的,但是后来又用到触摸屏加modbus所以程序框架比较大,写起来逻辑也很复杂。所以想学习下操作系统,现在我有一个最大的疑问就是,在操作系统下面,我的一些定时器的中断还可以用吗?应该怎么用和裸机有什么区别,如果可以需要看那些资料,望版主可以不吝赐教,谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106989
QQ
发表于 2016-2-26 11:31:04 | 显示全部楼层
100KHz的中断其实已经不适合再使用RTOS了,如果强行使用也是可以的。
如果MCU速度够快的话,可以搞搞。
回复

使用道具 举报

12

主题

27

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2016-2-26 14:04:45 | 显示全部楼层
那RTOS最大可以到多少脉冲频率
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106989
QQ
发表于 2016-2-26 14:27:20 | 显示全部楼层

回 lcj333 的帖子

lcj333:那RTOS最大可以到多少脉冲频率 (2016-02-26 14:04) 
可以实际测试下,应该凑合也能用。最好中断函数中的执行时间越短越好。
回复

使用道具 举报

12

主题

27

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2016-2-26 15:05:07 | 显示全部楼层
那中断函数的编写和在裸机下一样吗?
这是标准的代码,我在RTOS里面也是同样这样使用吗?

void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2,TIM_IT_CC1)==SET)//TIM_IT_CC1    比较
{
  TIM_ClearFlag(TIM2,TIM_IT_CC1);
  /×用户代码×/
  }
}
if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)        //溢出(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)
{
  TIM_ClearFlag(TIM2,TIM_IT_Update);                // TIM_ClearFlag(TIM2,TIM_IT_Update);
   /×用户代码×/
}
}
回复

使用道具 举报

12

主题

27

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2016-2-26 15:05:25 | 显示全部楼层
那中断函数的编写和在裸机下一样吗?
这是标准的代码,我在RTOS里面也是同样这样使用吗?

void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2,TIM_IT_CC1)==SET)//TIM_IT_CC1    比较
{
  TIM_ClearFlag(TIM2,TIM_IT_CC1);
  /×用户代码×/
  }
if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)        //溢出(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)
{
  TIM_ClearFlag(TIM2,TIM_IT_Update);                // TIM_ClearFlag(TIM2,TIM_IT_Update);
   /×用户代码×/
}
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106989
QQ
发表于 2016-2-26 15:09:23 | 显示全部楼层

回 lcj333 的帖子

lcj333:那中断函数的编写和在裸机下一样吗?
这是标准的代码,我在RTOS里面也是同样这样使用吗?

void TIM2_IRQHandler(void)
{
....... (2016-02-26 15:05) 
RTX中断的使用跟裸机一样的。
回复

使用道具 举报

12

主题

27

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2016-2-26 15:26:10 | 显示全部楼层
谢谢版主,我先试验起来啊
回复

使用道具 举报

5

主题

16

回帖

5

积分

新手上路

积分
5
发表于 2016-4-25 22:58:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:RTX中断的使用跟裸机一样的。 (2016-02-26 15:09) 
楼主,那外部中断呢?我想做一个串口外部中断,直接初始化以后,发现程序不能用啊~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106989
QQ
发表于 2016-4-26 00:55:35 | 显示全部楼层

回 春夜喜雨 的帖子

春夜喜雨:楼主,那外部中断呢?我想做一个串口外部中断,直接初始化以后,发现程序不能用啊~ (2016-04-25 22:58) 
没问题。应该是你的程序设计问题。
回复

使用道具 举报

20

主题

56

回帖

116

积分

初级会员

积分
116
发表于 2017-5-21 11:21:05 | 显示全部楼层
高频的中断,只能在中断服务程序处理事件了,靠任务是力不从心的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 10:08 , Processed in 0.350251 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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