保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

使用uC/OS-II操作系统的短信息电话机


且这部分也不是关键技术,为了缩短研发周期,选择这款芯片是比较合适的。

    2.3 软件方案

  本系统选用μC/OS-II操作系统,将其移植到所选的MCU上。在main中建立一个起始任务

StartTask。

int main (void){

OSInit();

OSTaskCreate((void*)StartTask,(void*)0X00,(OS_STK ) &StartTaskStk[START_TASK_STK_SIZE-1],0);

OSStart();

return 0;

}

起始任务中,首先建立一系列的信号量和邮箱:

Sem_Int_Ring = OSSemCreate(0) ;唤醒振铃任务

Sem_Any_SMTask = OSSemCreate(0) ;唤醒短消息任务

Sem_Int_Keyboard = OSSemCreate(0) ;唤醒键盘任务

Sem_Int_ClockTask = OSSemCreate(0) ;唤醒时钟中断

Mbox_Any_UI= OSMboxCreate((void *)0);唤醒UI任务

Mbox_Int_Hook= OSMboxCreate((void *)0);唤醒摘挂机任

;务

然后,用OSTaskCreate()函数建立6个任务。任务名分别为:HandsetTask(摘/挂机任务)、RingTask(响铃任务)、KeyTask(键盘任务)、SmTask(短消息任务)、UITask(用户界面(UI)任务)、ClockTask(时钟任务)。最后,在起始任务中将它本身删除掉。

  (1)摘/挂机任务

  当拿起听筒或放下听筒时,就产生中断。在中断中,调用OSMboxPost(Mbox_Int_Hook,Msg_Int_Hook)来唤醒摘/挂机任务,同时清除中断标志。Msg_Int_Hook[0]=0x00为摘机,Msg_Int_Hook[0]=0x01为挂机。

  摘/挂机任务不断调用OSMboxPend(Mbox _Int_Hook,0,&err)来获得信箱。获得信箱后,根据Msg_Int_Hook[0]中的值,就知道是摘机还是挂机,然后调用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)来唤醒UI任务。Msg_Any_UI [0]=任务号1,Msg_Any_UI [1]=0x00为摘机,Msg_Any_UI [1]=0x01为

《使用uC/OS-II操作系统的短信息电话机(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/148241.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。