(2)主要任务描述首先建立一个main()函数,在主函数中调用OS-Init()函数初始化μC/OS-II,然后建立第一个任务(起始任务),最后调用OS-Start()函数启动多任务。在建立主函数之前必须定义各个任务的堆栈、系统的全局变量和相关宏。主函数的程序清单如下:
起始任务是系统建立的第一个任务,主要有3个功能:完成对目标板的初始化(主要是定时器、外部中断和串行口的初始化),建立系统所要用到的信号量,建立系统的其他任务。起始任务部分程序清单如下:
在电机开窗任务中首先等待信号量sem_open。该信号量是由煤气处理任务、红外遥控处理任务发送的。如果电机开窗任务得到该信号量,程序就设置电机转动方向,并控制PWM送出电机转动脉冲,直到窗户被打开。
电机关窗任务必须等到信号量sem_close有效时才会被激活。信号量sam_close由盗情处理任务、下雨处理任务、大风处理任务、红外遥控处理任务发送。
短信任务则要得到盗情处理任务发出的信号量sam_dq时被激活。系统采用门磁传感器作为人室盗窃报警信号发生器。当窗户被打开时,门磁的开关状态发生变化,信号被发送到微处理器。微处理器检测到信号输入、控制GPRS模块发送中文报警信息给户主手机,户主可根据短信及时报警,避免造成更大的损失。
3 小 结
完成了基于32位ARM微处理器LM3S615和嵌入式实时操作系统μc/os—II的嵌入式智能窗的设计开发,并为嵌入式系统开发提供了一种解决方案。μc/os—II作为一个优秀的RTOS已经被成功移植到多种体系结构的微处理器上。将其移植到ARM平台上能够更深刻地理解RTOS的构造,加快应用和开发。把μC/OS—II引入到智能窗控制系统的软件设计中,使软件的开发更具层次性,开发效率更高,系统的稳定性、可靠性、实时性更强,也更容易扩展。