[ZLG-ARM] 请教周工...

[复制链接]
 楼主| roseting 发表于 2008-9-4 18:05 | 显示全部楼层 |阅读模式
ST, LED, se, os, pi
我用的2131的开发板,用UCOS实现了基本的点亮LED的功能,想在此基础上加上一个task——数码管循环显示。不知道为什么加完数码管部分的程序之后就没有反映了,LED灯也不亮了。。。,请高人帮忙看看,下面是主程序,我没用操作系统时,用类似的程序实现了LED灯的循环点亮。<br /><br /><br />#include&nbsp;&quot;config.h&quot;<br />#include&nbsp;&quot;stdlib.h&quot;<br /><br />#define&nbsp;LED1&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt18)&nbsp;<br />#define&nbsp;LED2&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt19)<br />#define&nbsp;LED3&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt20)<br />#define&nbsp;HC595_CS&nbsp;(1&lt&lt29)<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;Task0StkLengh&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 />#define&nbsp;TaskLED1StkSize&nbsp;128<br />#define&nbsp;TaskLED2StkSize&nbsp;128<br />#define&nbsp;TaskLED3StkSize&nbsp;128<br />#define&nbsp;TaskNUMStkSize&nbsp;&nbsp;&nbsp;&nbsp;128<br /><br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;Task0Stk&nbsp;[Task0StkLengh];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Define&nbsp;the&nbsp;Task0&nbsp;stack&nbsp;定义用户任务0的堆栈<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskLED1Stk[TaskLED1StkSize];<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskLED2Stk[TaskLED2StkSize];<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskLED3Stk[TaskLED3StkSize];<br />OS_STK&nbsp;&nbsp;&nbsp;&nbsp;TaskNUMStk[TaskNUMStkSize];<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;TaskLED1(void&nbsp;*data);<br />void&nbsp;&nbsp;&nbsp;&nbsp;TaskLED2(void&nbsp;*data);<br />void&nbsp;&nbsp;&nbsp;&nbsp;TaskLED3(void&nbsp;*data);<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskNUM(void&nbsp;*data);<br />//void&nbsp;&nbsp;&nbsp;&nbsp;MSPI_Init(&nbsp;);<br />uint8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSPI_SendData(uint8&nbsp;data);<br /><br />uint8&nbsp;rcv_data;<br /><br />uint8&nbsp;const&nbsp;DISP_TAB[19]={<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x88,0x83,0xC6,0xA1,0x86,0x8E,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xC7,0x8C,0xC6};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />uint8&nbsp;const&nbsp;LPC2131[7]&nbsp;={0xC7,0x8C,0xC6,0xA4,0xF9,0xB0,0xF9};<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;MSPI_Init();&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;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(Task0,(void&nbsp;*)0,&nbsp;&Task0Stk[Task0StkLengh&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 />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;TargetInit&nbsp;();<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(TaskLED1,(void&nbsp;*)0,&nbsp;&TaskLED1Stk[TaskLED1StkSize&nbsp;-&nbsp;1],&nbsp;3);<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(TaskLED2,(void&nbsp;*)0,&nbsp;&TaskLED2Stk[TaskLED2StkSize&nbsp;-&nbsp;1],&nbsp;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(TaskLED3,(void&nbsp;*)0,&nbsp;&TaskLED3Stk[TaskLED3StkSize&nbsp;-&nbsp;1],&nbsp;5);<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTaskCreate&nbsp;(TaskNUM,(void&nbsp;*)0,&nbsp;&TaskNUMStk[TaskNUMStkSize&nbsp;-&nbsp;1],&nbsp;6);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&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;TaskLED1&nbsp;任务LED1<br />********************************************************************************************************/<br />void&nbsp;TaskLED1(void&nbsp;*pdata)&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=PINSEL2&(~0x08);<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR|=LED1;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR=LED1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC/4);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC/2);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<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;TaskLED2&nbsp;任务LED2<br />********************************************************************************************************/<br />void&nbsp;TaskLED2(void&nbsp;*pdata)&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=PINSEL2&(~0x08);<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR|=LED2;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR=LED2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC/2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC/1);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&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;TaskLED3&nbsp;任务LED3<br />********************************************************************************************************/<br />void&nbsp;TaskLED3(void&nbsp;*pdata)&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=PINSEL2&(~0x08);<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR|=LED3;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED3;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR=LED3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC/1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=LED3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(OS_TICKS_PER_SEC*2);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&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;TaskNUM&nbsp;任务TaskNUM<br />********************************************************************************************************/<br />void&nbsp;TaskNUM(void&nbsp;*pdata)&nbsp;&nbsp;&nbsp;<br />{&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata=pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0=0x00005500;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1=0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR=HC595_CS;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt16;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rcv_data=MSPI_SendData(DISP_TAB);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(20);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><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;SPI&nbsp;SendData&nbsp;任务SPI&nbsp;SendData<br />********************************************************************************************************/<br /><br />uint8&nbsp;MSPI_SendData(uint8&nbsp;data)<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0=(PINSEL0&0xFFFF00FF)|0x00005500;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPCCR=0x52;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPCR=(0&lt&lt3)|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt4)|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt5)|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&lt&lt6)|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&lt&lt7);<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR=HC595_CS;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPDR=data;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(0==(SPI_SPSR&0x80));<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0SET=HC595_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;return(SPI_SPDR);<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;End&nbsp;Of&nbsp;File<br />********************************************************************************************************/<br />
gavin_he 发表于 2008-9-4 18:13 | 显示全部楼层

看看配置参数

OS_MAX_TASKS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />OS_LOWEST_PRIO&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />这两个参数有问题不&nbsp;&nbsp;?<br />&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| roseting 发表于 2008-9-4 18:23 | 显示全部楼层

应该没有问题的

#define&nbsp;OS_MAX_TASKS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Max.&nbsp;number&nbsp;of&nbsp;tasks&nbsp;in&nbsp;your&nbsp;application&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;...&nbsp;MUST&nbsp;be&nbsp;&gt=&nbsp;2&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 />#define&nbsp;OS_LOWEST_PRIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Defines&nbsp;the&nbsp;lowest&nbsp;priority&nbsp;that&nbsp;can&nbsp;be&nbsp;assigned&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;...&nbsp;MUST&nbsp;NEVER&nbsp;be&nbsp;higher&nbsp;than&nbsp;63!&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 /><br />
 楼主| roseting 发表于 2008-9-5 09:26 | 显示全部楼层

请周工帮我看看程序

谢谢...
zlg_lly 发表于 2008-9-8 12:16 | 显示全部楼层

RE:roseting

你好,很抱歉不能直接告诉你问题出在哪里,提几个建议,希望对你能有点帮助。<br />1、将SPI初始化函数从uint8&nbsp;MSPI_SendData(uint8&nbsp;data)中独立出来;<br />2、确认void&nbsp;TaskNUM(void&nbsp;*pdata)没有逻辑错误,先将其放到前后台系统中调试,调试通过后再放回到操作系统中调试;<br />3、在操作系统中减少任务个数进行调试,如:只留下void&nbsp;TaskNUM(void&nbsp;*pdata)任务;<br />4、增加系统任务个数进行调试。<br />调试程序是一个烦人的但又不得不循序渐进的过程,希望你能一步步前进,把整个程序拿出来让他人帮你解决问题是非常不利于自己进步的。
qjzcg 发表于 2008-9-8 15:00 | 显示全部楼层

问题出在这里

问题出在这里<br />&nbsp;&nbsp;PINSEL0=0x00005500;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1=0x00000000;<br />正确的方法应该是:&nbsp;&nbsp;PINSEL0=PINSEL0|0x00005500;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1=PINSEL1|0x00000000;<br /><br />
 楼主| roseting 发表于 2008-9-8 17:52 | 显示全部楼层

谢谢 zlg_lly

非常感谢,<br />从你提供的方法中,我找到了解决问题的方向,<br />我会努力的,加油+++
寒雨飞扬 发表于 2008-9-8 20:21 | 显示全部楼层

修改一下你的任务

首先我看到的是这个问题,没有仔细看你程序有没有逻辑错误。<br />uint8&nbsp;MSPI_SendData(uint8&nbsp;data)是一个典型的函数写法,但是操作系统的任务一般不建议这么写,首先任务是没有返回的,任务的入口参数也是一次有效的。<br /><br />操作系统的任务一般这样写。<br />void&nbsp;MSPI_SendData(void&nbsp;*pdata)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wile(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />如果需要传递参数,最好使用消息。<br />仅供参考。
 楼主| roseting 发表于 2008-9-9 10:03 | 显示全部楼层

经过调试,发现下面的问题

经过调试,发现下面的问题:<br />OSTaskCreate&nbsp;(TaskLED1,(void&nbsp;*)0,&nbsp;&TaskLED1Stk[TaskLED1StkSize&nbsp;-&nbsp;1],&nbsp;3);<br />OSTaskCreate&nbsp;(TaskLED2,(void&nbsp;*)0,&nbsp;&TaskLED2Stk[TaskLED2StkSize&nbsp;-&nbsp;1],&nbsp;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />OSTaskCreate&nbsp;(TaskLED3,(void&nbsp;*)0,&nbsp;&TaskLED3Stk[TaskLED3StkSize&nbsp;-&nbsp;1],&nbsp;5);<br />OSTaskCreate&nbsp;(TaskNUM,(void&nbsp;*)0,&nbsp;&TaskNUMStk[TaskNUMStkSize&nbsp;-&nbsp;1],&nbsp;6);<br /><br />仅有TaskNUM时,正常;<br />有LED1/LED2和TaskNUM三个任务时,正常;<br />LED1/LED2/LED3三个任务时,正常;<br />LED3和TaaskNUM两个任务一起时,正常<br />但是LED1/LED2/LED3和TaskNUM四个任务一起的时候就不正常.<br /><br />这是为什么啊?我看了看,TaskNUM和LED3之间的操作是不会相互影响的,为什么会出现这样的结果?<br />本人刚学习ARM,对UCOS还不是很懂,请大侠指点~~<br /><br /><br />谢谢!<br />
zlg_lly 发表于 2008-9-10 14:44 | 显示全部楼层

RE:roseting

你好!<br />“四个任务一起的时候就不正常”那就在任务创建时进行单步调试,观察OSTaskCreate的返回值,看看各任务是否成功建立。<br />可能内存已经溢出了。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

71

帖子

1

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

35

主题

71

帖子

1

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