完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛
|
|
|
相关推荐
|
|
|
顶
到底是什么样的程序啊 也没说清楚 |
|
|
|
|
|
|
|
|
好像不错啊!
UCOSII实验1:UCOSII-1多任务运行LED+KEY+LCD+触摸画笔 1. 实验目的:测试UCOSII多任务的创建和运行 2. 实现现象:LED0,LED1循环闪烁,LCD部分区域循环变色,触摸屏下半部分具有触摸画板功能,按下KEY0按键可以进入触摸校准界面。 3. 用到的UCOSII函数简析: UCOSII初始化函数:void OSInit (void) 任务创建函数: INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio); 启动任务函数:void OSStart (void); 延时函数 OSTimeDlyHMSM(0,0,0,200); 这里我们着重介绍一下OSTaskCreate()函数和OSTimeDlyHMSM()函数: 这个函数的入口参数是任务指针,任务传递参数,任务堆栈栈顶指针以及任务优先级。 在这里我们介绍一下这几个入口参数的作用: 1) 任务优先级:多任务执行的时候,操作系统必须选择一个任务来执行,因为一个CPU同一时间只能执行一个任务,这里UCOSII是按优先级抢占式规则来选择任务的,所以对于每个任务,都会定义一个优先级,而且优先级是唯一的。 2) 任务堆栈:存储器中按先进后(LIF0)出原则组织的连续存储空间,作用是满足任务切换和相应中断时保存CPU寄存器的内容和任务调用其他函数的需要。这里学过单片机的人都知道中断的时候有一个现场保护的概念,现场保护就是用到堆栈。 定义堆栈的方式: OS_STK TASK_START_STK[START_STK_SIZE]; 其中START_STK_SIZE是我们宏定义的任务堆栈的大小。 3) 任务指针:就是指向任务执行入口地址的指针了。C语言里面函数名字就可以看做函数的入口地址了。 4) 任务传递参数:这个就不用讲解,顾名思义就是传递给任务的参数了。 OSTimeDlyHMSM()函数是非常重要的函数,该函数表面看是进行延时,实际上是使任务运行延时(暂停)一段时间并进行一次任务调度,释放CPU使用权。所以简而言之,当任务运行到延时函数的时候,他将释放CPU使用权,等待延时结束之后重新进入就绪状态。 任务初始化函数在系统启动之后必须先调用此函数初始化UCOSII之后才能调用创建函数OSTaskStart以及启动任务函数OSStart(); 对于启动任务函数OSStart(),UCOSII要求是在调用此函数之前系统必须创建至少一个任务,这里我们就创建了TaskStart任务,在这个任务中,我们完成其他任务的创建。 4. 实验描述 OSTaskCreate()函数创建TaskStart任务,, 在TaskStart()任务中5次调用ucos任务创建函数OSTaskCreate()创建5个任务:TaskLed,TaskLed1,TaskLCD,TaskKey,TaskTouch。然后调用OSTaskSuspend()函数将 TaskStart()任务挂起,因为在5个任务创建后,TaskStart任务该做的事情已经完毕,挂起任务。 TaskLed: LED0每隔500ms状态反转 TaskLed1: LED1每隔200ms状态反转 TaskLCD: LCD上半部分一定区域颜色循环更换 TaskKey: 每隔20ms扫描按键值,当KEY0按下时,进入触摸屏校准界面。 TaskTouch: 每隔2ms扫描触摸屏下半部分的触摸点,并显示在LCD上。也就是我们的触摸画板程序。NOTE:如果触摸屏不准,请按下KEY0进入触摸屏校准程序 注意: 1,本代码可以SWD下载,但是不支持仿真,下载完后,请拔了仿真器.否则可能导致部分功能不正常. |
|
|
|
|
|
|
|
|
谢谢楼主的分享
|
|
|
|
|
|
|
|
|
学习中,感谢!!!!
|
|
|
|
|
|
|
|
|
来看看有没有相关的延时的子程序的
|
|
|
|
|
|
|
|
|
多谢楼主,正是需要的
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
5266 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3472 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 16:59 , Processed in 1.025802 second(s), Total 80, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖