功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术知识 您所在的位置: 首页 > 技术知识

教你构造一个51单片机的实时操作系统

来源:    作者:    发布时间:2015-01-07 10:58:55    浏览量:

  void main(void){

  OSInit(); /*初始化OSTaskStackBcBotton队列*/

  TMOD=(TMOD&0XFO)│ 0XOl;

  TL0=0xBF;

  TH0=0xFC;

  TRO=1;

  ETO=1;

  TFO=O:

  OSTaskCreate(TaskA,NULL,0);

  OSTaskCreate(TaskB.NULL,1);

  OSTaskCreate(TaskC,NULL,2);

  OSStart();

  上面这段代码中,所有任务建立后,便调用OSStart()开始任务调度。OSStart()是一个宏定义,如下所示:

  #deflne OSStart() d0{\

  OST塑封电感器askCreate(TaskIdle,NULL,OS_MAX_TASKS);\

  EA=l:\

  return;\

  }while(O)

  首先,它创建了一个空闲任务并打开中断,然后便返回。返回到哪里了呢?我们知道,空闲任务是优先级最低的任务,当调OSTaskCreate建立时,会将其地址填人到SP的位置,并把SP向后移动2个字节(见图2及说明),因而此时处在堆栈顶端的,一定是空闲任务Taslddle。这就使得这里的return一定会返回到空闲任务。至此,系统进入正常运行状态。

  3.2 任务的切换

  任务的切换分两种情况,在当前任务优先级低于下一个取得CPU控制权的任务时,将下一个取得CPU控制权的任务的栈顶到当前任务的栈顶之间的内容向RAM空间的高端搬移,以空出全部的RAM空间作下一个任务的堆空smd电感器间,同时更新对应的OSTaskStackBotton,使其指向新模压电感的正确任务的堆栈栈底。如果当前任务的优先级高于下一个任务的优先级,则作相反的搬移,如图3与图4所示。

  

  所有任务必须主动调用OSSleep,放弃CPU的控制权。任务调用OSSle功率电感ep后,将选择优先级最高的就绪任务运行。

  结 语

  系统完成后,内核的代码量在400多个字节左右,占用1个定时器中断及小量的内存空间。系统设置容量为8个任务贴片电感,用户实际可用任务为7个,能够满足一般需求,也达到了在小容量芯片中应用的开发要求。由于没有采用占先式的任务调度,除开全程相关的个别任务的一些局部变量外,其他局部变量已经不存在覆盖功率电感器关系,由于是任务主动放弃CPU控制权,对于个别需要保护的变量单独进行处理也变得容易。在系统中,全程不需要反复地开关中断,实时性能也很好。对个别时序要求严格的外设(如DSl8820)除外。

  • 智能功率模块:走向小型化与高效能图2:SPM模块的应用电路结构图使用BLDC马达进行节能处处可见,可以说是尘埃落定。其挑战在于以合理的成本在马达里集成一个复杂的电子控制电路,从而为用户提供服务。优化的功率驱动电路对马达具有巨大的提升

  • L6562D+OB2203的问题最近用L6562D+OB2203做了一个输入175-265VAC,输出90V1A的路灯电源,PFC电路单独调试OK,但是单独调试OB2203出现CC模式下开机带载启动,电源打嗝保护,空载启动然后带载就不会出现打

  • 一种空调用新型PFC的设计0 引言近年来,随着电子技术的发展,各种电子设备、家用电器可能产生的电流谐波和无功功率对电网的污染也越来越引起人们的重视。谐波的存在,不仅大大降低了输入电路的功率因数,而且可对公共电力系统造成污染,引

  •