默认配置文件CONF_TNYA51中定义INT_CLOCK=10000,即硬件定时溢出为10000个机器周期,TIMESHARING=5,即循环切换时间为5个溢出。
如果用12M晶振,10000个机器周期=10000us=10ms,5个溢出=50ms,就是说每个任务占用50ms的时间片,对于要求时间较短的任务来说就要改配置了。
我的程序要对一个脉宽30ms左右的脉冲计数,结果开始总是不对,后来才找到毛病。
改配置文件的方法:
1 打开D:"Keil"C51"RTX_TINY目录下CONF_TNYA51文件,修改两个参数
2 执行相同目录下的genrtxbat文件,执行成功后会生成Rtx51tnylib文件
3 将D:"Keil"C51"LIB下的Rtx51tnylib作个备份,再将第2步中生成的Rtx51tnylib拷贝到D:"Keil"C51"LIB目录下覆盖原有文件即可
4 重新编译你的工程
用定时器,定时1ms,每当到了、中断,就把 n1、n2、n3,分别加一,然后退出中断。
在主函数中,分别检测n1、n2、n3是否到了50、30、60,到了,就该干什么就干什么去。
用一个定时器,基本就可以满足所有的定时需求。
真正的并发执行是不可能的,除非你用多核处理器
程序并发执行其实是 *** 作系统的功劳,包括你的电脑能够同时执行多个任务,靠的就是XP
并发执行只是宏观上看起来是的,实际上CPU内部还是每一个周期执行一条指令。 *** 作系统都有一个系统时钟,对于51来说,这个周期可以选择20ms左右,当然也可以是别的值,视你的任务而定。首先,系统建立多个任务,每个系统周期到来的时刻,都触发一次任务间切换,CPU保存当前任务信息而转去执行另一个任务;也可以在系统周期还没到的时候,由当前执行的任务主动触发一次任务切换;任务之间能够进行通信,比如某个任务要等到另外一个任务发个信息之后才执行,那么这个任务在执行之前,CPU可以执行别的任务(如果没有 *** 作系统的话,一般做法就是CPU不停检测某个标志,这时CPU实际上是在空转!!!)
*** 作系统的核心功能就是调度任务,使CPU利用率达到最高,比如我们的很多程序里面都有延时,这种延时基本上是软件延时,CPU就在那里干耗着, *** 作系统里面也有延时程序,只不过这个延时是用定时器实现的,在A任务延时的时候CPU能够去执行B任务,系统在每次系统周期来到的时候检测任务A延时时间是否达到,如果到了就转去执行任务A,可以看出如果系统周期是20ms,那么任务延时设置成20msk肯定不能只能真正延时20ms
建议你看看RTX51-tiny 实时 *** 作系统,一个为51量身定做的 *** 作系统,非常适合51单片机,百度文库里面有中文使用说明
linux,vxworks,wince均是可以用于嵌入式领域的 *** 作系统,其功能跟PC上的windows xp之类的作用类似,均是为了方便管理硬件和软件而使用的。
而ARM,是一家公司的名称,也是一大类型微控制器/微处理器的统称(均是以ARM公司提供的CPU核为基础开发)。在ARM之外,还有MIPS,PowerPC等几种类型的CPU用在嵌入式领域,你可以把它们看作是PC平台的CPU,只是它们的使用领域不是桌面电脑而已,并集成了很多功能模块。
所以你的问题的回答:
1,有脱离ARM的,比如说在MIPS上开发做产品,也是属于嵌入式,嵌入式LINUX可以移植到MIPS上;WINCE和VXWORKS也是一样。为什么我们听说ARM会比较多,那是因为它的推广工作做得好,价格功耗有优势,国际上的知名的半导体大厂都有使用了ARM内核的产品,所以可以说是百花齐放的一个程度。
2,嵌入式开发基本上使用C,也可以用C++但很少用。在涉及到底层(硬件)部分,有需要用到少量的汇编(当然汇编格式与所使用的CPU类型有关)
3,在这个问题里,ARM是一个CPU,一个产品除了CPU外,还有别的部件,比如说温度传感器,各种通讯接口,这些都是硬件的东西,是实实在在的芯片构成的。假如这个产品不复杂,但又用了ARM,一样可以不使用 *** 作系统,直接用普通写法的程序去控制硬件(业内通俗说法叫:裸奔);但是当这个产品的功能很复杂,又用了以太网,又用了界面,又用了很多高级的硬件,比如说智能手机,那么它就需要一个嵌入式的 *** 作系统去控制手机,这样对于手机来说,产品的开发速度会加快,而且维护也相对容易,改进时的修改工作量也较少。你在市面上见到的大部分智能手机都是基于WINDOWS MOBILE系统的,当然NOKIA的SYMBIAN也属于嵌入式 *** 作系统,只是其是专用于手机,还有少部分的智能手机比如MOTO的部分智能手机就是用的嵌入式LINUX的系统。
所以,对于一个较复杂的产品,工程师是各司其职,有专门负责硬件电路部分的,有专门去修改 *** 作系统的驱动的,有专门去编写上层的应用软件的,这样就有了嵌入式硬件工程师,嵌入式软件工程师之分了,很多中小公司很多工作都是一人做完的,所以分类就不是那么细了。
4,这个问题3中已经回答了一部分,跑上 *** 作系统的,基本上都是你说的那样划分的,因为每一部分的工作都比较复杂,所以最好专人负责各自的部分,这样项目进度才能保证
其实你问的这些,书上网上都有的,搜一搜就有了~~~~
以上就是关于如何设置rtx51中时间片的长度全部的内容,包括:如何设置rtx51中时间片的长度、单片机的多个延时用定时器如何处理、什么单片机可以时一时序执行多路分支程序吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)