[ZLG-ARM] 用周工2131工程模板+ucosii 有个问题请大家帮忙啊

[复制链接]
2427|8
 楼主| wlrt 发表于 2007-11-19 14:52 | 显示全部楼层 |阅读模式
用周工2131工程模板+ucosii&nbsp;有个问题请大家帮忙啊<br /><br />&nbsp;我是初学者,想试验一下使用信号量功能&nbsp;程序如下:<br /><br />#include&nbsp;&quot;config.h&quot;<br />#include&nbsp;&quot;stdlib.h&quot;<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;TaskStkLengh&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Define&nbsp;the&nbsp;Task0&nbsp;stack&nbsp;length&nbsp;定义用户任务0的堆栈长度<br />&nbsp;<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskStk&nbsp;[TaskStkLengh];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Define&nbsp;the&nbsp;Task0&nbsp;OS_STK&nbsp;&nbsp;Taskdisp_1&nbsp;[TaskStkLengh];<br />OS_STK&nbsp;&nbsp;Taskdisp_2&nbsp;[TaskStkLengh];<br />uint8&nbsp;i;<br />uint8&nbsp;a1[5];<br />uint8&nbsp;b1[5];<br /><br />void&nbsp;__irq&nbsp;irq_rtc(void)<br />{<br />&nbsp;&nbsp;ILR&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志&nbsp;<br />&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;write_rtc();<br />&nbsp;<br /><br />}<br /><br /><br />void&nbsp;init_ic(void)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;CCR=0x02;//reset&nbsp;RTC<br />&nbsp;&nbsp;&nbsp;&nbsp;ILR=0x03;//clear&nbsp;interrupt&nbsp;flag<br />&nbsp;&nbsp;&nbsp;&nbsp;CIIR=0x01;//second&nbsp;increament&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;AMR=0xff;//alarm&nbsp;not&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;PREINT=365;//PREINT&nbsp;=&nbsp;int&nbsp;(pclk&nbsp;/&nbsp;32768)&nbsp;-&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PREFRAC=6912;//PREFRAC&nbsp;=&nbsp;pclk&nbsp;-&nbsp;((PREINT&nbsp;+1)&nbsp;x&nbsp;32768);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;=0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl10=0x20|13;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr10=(uint32)irq_rtc;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable=(1&lt&lt13);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CCR=0x01;//enable&nbsp;RTC<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;}<br /><br /><br /><br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task0(void&nbsp;*pdata);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//声明Task0&nbsp;任务0<br />void&nbsp;&nbsp;&nbsp;&nbsp;Task1(void&nbsp;*pdata);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//声明Task0&nbsp;任务1<br />void&nbsp;&nbsp;&nbsp;&nbsp;Task2(void&nbsp;*pdata);<br />OS_EVENT&nbsp;*DispSem;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;main&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;OSInit&nbsp;();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DispSem=OSSemCreate(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(Task0,(void&nbsp;*)0,&nbsp;&TaskStk[TaskStkLengh&nbsp;-&nbsp;1],&nbsp;2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSStart&nbsp;();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task0&nbsp;任务0<br />********************************************************************************************************/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Task0&nbsp;&nbsp;&nbsp;&nbsp;(void&nbsp;*pdata)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;//TargetInit&nbsp;();<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR=0x01e81c70;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR=0xf3ff0000;//P1.31,P1.30,P1.29&nbsp;P1.28are&nbsp;output<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;init_ic();<br />&nbsp;&nbsp;&nbsp;&nbsp;init_lcd();<br />&nbsp;&nbsp;&nbsp;&nbsp;read_date();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate(Task1,(void&nbsp;*)0,&Taskdisp_1[TaskStkLengh-1],3);<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate(Task2,(void&nbsp;*)0,&Taskdisp_2[TaskStkLengh-1],4);<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task1<br />********************************************************************************************************/<br />void&nbsp;Task1&nbsp;(void&nbsp;*pdata)<br />{&nbsp;<br />&nbsp;&nbsp;uint8&nbsp;err;<br />&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;OSSemPend(DispSem,0,&&nbsp;err);<br />&nbsp;&nbsp;&nbsp;turn_on_lcd();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//液晶循环显示图片1<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_1();<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_void(0,0,6,192);<br />&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;err=OSSemPost(DispSem);<br />&nbsp;&nbsp;&nbsp;}<br />}<br /><br />&nbsp;&nbsp;/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task2<br />********************************************************************************************************/<br />void&nbsp;Task2&nbsp;(void&nbsp;*pdata)<br />{&nbsp;uint8&nbsp;err;<br />&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;OSSemPend(DispSem,0,&&nbsp;err);<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_2();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//液晶循环显示图片2<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_void(0,0,6,192);<br />&nbsp;&nbsp;&nbsp;delay(2000000);&nbsp;<br />&nbsp;&nbsp;&nbsp;//OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;err=OSSemPost(DispSem);&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br /><br />&nbsp;&nbsp;&nbsp;<br />/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Of&nbsp;File<br />********************************************************************************************************/<br />&nbsp;结果是:只显示了图片1&nbsp;而且只显示1次&nbsp;,也就是任务2&nbsp;根本没有被执行<br />&nbsp;&nbsp;&nbsp;&nbsp;。。。。郁闷好久,请大家帮忙看看阿&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。。。不胜感激!!!
lyl831015 发表于 2007-11-19 19:33 | 显示全部楼层

任务1堆栈

我也是菜鸟,还没有看出问题,但是你任务1的堆栈都没有定义!
lyl831015 发表于 2007-11-20 08:44 | 显示全部楼层

信号量

任务1最后添加一个延时.否则低优先级任务(任务2)得不到响应.
 楼主| wlrt 发表于 2007-11-20 09:17 | 显示全部楼层

您好,我加了延时,任务2是进去了,但还有问题。。。

您好,谢谢您的回复,任务1堆栈是我书写的有误,已经定义过了,现在我在2个任务中都加了延时:<br /><br /><br />#include&nbsp;&quot;config.h&quot;<br />#include&nbsp;&quot;stdlib.h&quot;<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;TaskStkLengh&nbsp;&nbsp;&nbsp;&nbsp;128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Define&nbsp;the&nbsp;Task0&nbsp;stack&nbsp;length&nbsp;定义用户任务0的堆栈长度<br />&nbsp;<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskStk&nbsp;[TaskStkLengh];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Define&nbsp;the&nbsp;Task0&nbsp;OS_STK&nbsp;&nbsp;Taskdisp_1&nbsp;[TaskStkLengh];<br />OS_STK&nbsp;&nbsp;Taskdisp_2&nbsp;[TaskStkLengh];<br />uint8&nbsp;i;<br />uint8&nbsp;a1[5];<br />uint8&nbsp;b1[5];<br />uint32&nbsp;year,month,day,week,hour,minute,second;<br />uint8&nbsp;flag=0;<br /><br />void&nbsp;__irq&nbsp;irq_rtc(void)<br />{<br />&nbsp;&nbsp;ILR&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志&nbsp;<br />&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;write_rtc();<br /><br /><br />}<br /><br /><br />void&nbsp;init_ic(void)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;CCR=0x02;//reset&nbsp;RTC<br />&nbsp;&nbsp;&nbsp;&nbsp;ILR=0x03;//clear&nbsp;interrupt&nbsp;flag<br />&nbsp;&nbsp;&nbsp;&nbsp;CIIR=0x01;//second&nbsp;increament&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;AMR=0xff;//alarm&nbsp;not&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;PREINT=365;//PREINT&nbsp;=&nbsp;int&nbsp;(pclk&nbsp;/&nbsp;32768)&nbsp;-&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PREFRAC=6912;//PREFRAC&nbsp;=&nbsp;pclk&nbsp;-&nbsp;((PREINT&nbsp;+1)&nbsp;x&nbsp;32768);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;=0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl10=0x20|13;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr10=(uint32)irq_rtc;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable=(1&lt&lt13);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CCR=0x01;//enable&nbsp;RTC<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;}<br /><br /><br /><br />void&nbsp;&nbsp;Task0(void&nbsp;*pdata);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//声明Task0&nbsp;<br />void&nbsp;&nbsp;&nbsp;&nbsp;Task1(void&nbsp;*pdata);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//声明Task0&nbsp;任务1<br />void&nbsp;&nbsp;&nbsp;&nbsp;Task2(void&nbsp;*pdata);<br />OS_EVENT&nbsp;*DispSem;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;main&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;OSInit&nbsp;();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DispSem=OSSemCreate(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(Task0,(void&nbsp;*)0,&nbsp;&TaskStk[TaskStkLengh&nbsp;-&nbsp;1],&nbsp;2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSStart&nbsp;();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task0&nbsp;任务0<br />********************************************************************************************************/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Task0&nbsp;&nbsp;&nbsp;&nbsp;(void&nbsp;*pdata)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR=0x01e81c70;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR=0xf3ff0000;//P1.31,P1.30,P1.29&nbsp;P1.28are&nbsp;output<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;init_ic();<br />&nbsp;&nbsp;&nbsp;&nbsp;init_lcd();<br />&nbsp;&nbsp;&nbsp;&nbsp;read_date();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate(Task1,(void&nbsp;*)0,&Taskdisp_1[TaskStkLengh-1],3);<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate(Task2,(void&nbsp;*)0,&Taskdisp_2[TaskStkLengh-1],4);<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task1<br />********************************************************************************************************/<br />void&nbsp;Task1&nbsp;(void&nbsp;*pdata)<br />{&nbsp;<br />&nbsp;&nbsp;uint8&nbsp;err;<br />&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;OSSemPend(DispSem,0,&&nbsp;err);<br />&nbsp;&nbsp;&nbsp;turn_on_lcd();<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_1();<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_void(0,0,6,192);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;err=OSSemPost(DispSem);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;}<br />}<br /><br />&nbsp;&nbsp;/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task2<br />********************************************************************************************************/<br />void&nbsp;Task2&nbsp;(void&nbsp;*pdata)<br />{&nbsp;uint8&nbsp;err;<br />&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;OSSemPend(DispSem,0,&&nbsp;err);<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_2();<br />&nbsp;&nbsp;&nbsp;delay(2000000);<br />&nbsp;&nbsp;&nbsp;disp_void(0,0,6,192);<br />&nbsp;&nbsp;&nbsp;delay(2000000);&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;err=OSSemPost(DispSem);&nbsp;<br />&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br /><br />&nbsp;&nbsp;&nbsp;<br />/*********************************************************************************************************<br />**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Of&nbsp;File<br />********************************************************************************************************/<br />现在问题是,2个任务中的循环只执行一次&nbsp;,也就是按顺序显示了任务1和任务2的图片,但只显示了一次,没有再继续循环显示。是不是任务2执行完后没有再调用任务1了?这问题出在哪呢?期待回复,谢谢了<br />
 楼主| wlrt 发表于 2007-11-20 16:41 | 显示全部楼层

请大家帮忙看看啊

请大家帮忙看看啊&nbsp;&nbsp;是不是工程模板里&nbsp;还有哪里要配置呢??&nbsp;郁闷好久了...
lyl831015 发表于 2007-11-20 19:47 | 显示全部楼层

我发现的问题

1、不应操作&nbsp;PINSEL2,修改了调试模式;<br />2、中断的使用不当,建议使用受操作系统管理的ISR;使用句柄;<br />
yongtree 发表于 2007-11-20 22:18 | 显示全部楼层

两个都在PEND,饿死了!

  
yongtree 发表于 2007-11-20 22:24 | 显示全部楼层

看错了,按照说的情况,好像是没有系统时钟,应该是一直

  
 楼主| wlrt 发表于 2007-11-21 11:10 | 显示全部楼层

谢谢你们, 问题解决了。。。

谢谢你们,&nbsp;问题解决了。。。<br />&nbsp;&nbsp;&nbsp;是系统时钟的问题&nbsp;,我把模板中的time0()给屏蔽了。。。无法产生正确的时钟节拍了。。。哈哈。。。<br />再次谢谢你们
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

20

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部