|
| 技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
一个uc/os-ii的初级应用问题? |
|
| 作者:c51单片机 栏目:嵌入式系统 | |
| 2楼: | >>参与讨论 |
| 作者: c51单片机 于 2005-8-14 16:05:00 发布:
问题 今天我在uc/os-ii上搞一个走马灯任务(只有一个任务)怎么做也做不不通,请大家帮忙,其程序如下: void TestTask1(void *os_pdata) reentrant { os_pdata = os_pdata; InitTick(); while(1) { P1=0xfe; OSTimeDlyHMSM(0,0,1,0); //延时挂起 P1=P1<<0x01; } } 怎么程序不能执行到:P1=P1<<0x01;呢? 延时挂起后,超时后应该执行到P1=P1<<0x01;的呀? |
|
| 3楼: | >>参与讨论 |
| 作者: ping111 于 2005-8-15 0:43:00 发布:
不行的。 延时挂起后,就会去执行其它任务,怎么会继续执行下去呢? 就算没有其它任务,也只能是这个任务从头再来。 而且流水线的话 P1=0xfe;应该在外面初始化。 |
|
| 4楼: | >>参与讨论 |
| 作者: yifenqian 于 2005-8-16 8:26:00 发布:
任务挂起恢复执行后是从任务的开始处执行么 任务挂起恢复执行后是从任务的开始处执行么?我的理解是重挂起的时候往下执行 |
|
| 5楼: | >>参与讨论 |
| 作者: C51单片机 于 2005-8-16 12:49:00 发布:
我以为挂起后,返回时执行下一条指令 是,P1=0xfe是应该放在外面的。 我以为延时挂起就像调用延时子程序那样!我再试试。谢谢! |
|
| 6楼: | >>参与讨论 |
| 作者: andyzhenyu 于 2005-8-18 20:41:00 发布:
keyi 应该是接着继续执行的,我测试过的 |
|
| 7楼: | >>参与讨论 |
| 作者: c51单片机 于 2005-8-18 21:54:00 发布:
对 我昨天也是测试了。到时后继续执行下一条指令。但是我写写51的RAM后,没有什么反应,好像51没有运行?是不是51不能uc/os-ii呀?我剪载后的代码只5K多呀! |
|
| 8楼: | >>参与讨论 |
| 作者: dahanzk 于 2005-8-20 19:41:00 发布:
标准51的代码长度只有4K |
|
| 9楼: | >>参与讨论 |
| 作者: eleven11 于 2005-8-20 21:15:00 发布:
呵呵,楼主,你的堆栈空间不够 无法恢复寄存器,这种问题新手碰得最多了,哈哈 |
|
| 10楼: | >>参与讨论 |
| 作者: c51单片机 于 2005-8-20 21:29:00 发布:
不会吧? eleven11,那该怎么办呀? |
|
|
|
| 免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |