紧急求助!!!!!

[复制链接]
2915|3
 楼主| 开心啤酒 发表于 2007-3-16 09:57 | 显示全部楼层 |阅读模式
AD, dc, TE, ADC, se
各位高手,本人遇到一难题,在程序中,AD采样已经屏蔽,只有SCI功能.问题是:通过SCI输出的数据不是我所期望的.怎么调也不对.程序源代码如下,肯请各位高手给予指点.谢谢.<br /><br />/*<br />AD采样基本程序,并带有排队滤波函数<br />*/<br />#include&nbsp;&quot;global.c&quot;&nbsp;<br />void&nbsp;SystemInit();<br />void&nbsp;Timer1Init();&nbsp;<br />void&nbsp;KickDog();&nbsp;&nbsp;<br /><br />void&nbsp;AD_Sample();&nbsp;<br />void&nbsp;Que();<br /><br />void&nbsp;SCI_Init();&nbsp;&nbsp;&nbsp;&nbsp;<br />void&nbsp;SCI_Send();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />int&nbsp;numled0=200;&nbsp;&nbsp;&nbsp;<br />unsigned&nbsp;int&nbsp;t0=0,t1=0,i=0,j=0;&nbsp;&nbsp;&nbsp;<br />unsigned&nbsp;int&nbsp;RESULT_0=0,RESULT_8=0;&nbsp;&nbsp;<br />unsigned&nbsp;int&nbsp;AD0[18],AD8[18],AD_0,AD_8,AD_FLAG=0;<br />float&nbsp;AD_SIG0=0.0,AD_SIG8=0.0;&nbsp;&nbsp;&nbsp;<br />unsigned&nbsp;int&nbsp;SCI_RXDATA;<br /><br /><br />main()<br />{&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;SystemInit();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//系统初始化<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;MCRA=MCRA&nbsp;&&nbsp;0xC0FF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IOPB0-6设为IO口模式<br />&nbsp;&nbsp;&nbsp;PBDATDIR=0xFFC2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//所有LED=0&nbsp;<br />&nbsp;&nbsp;&nbsp;PBDATDIR=PBDATDIR&nbsp;|0x003D;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//所有LED=1&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;SCI_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;<br />&nbsp;&nbsp;&nbsp;Timer1Init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器初始化<br />&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;INTM&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(AD_FLAG==1)&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AD_FLAG=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt18;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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;&nbsp;&nbsp;&nbsp;AD_Sample();&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AD0=RESULT_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AD8=RESULT_8;<br />&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;//Que();&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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;SystemInit()&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;SETC&nbsp;&nbsp;&nbsp;&nbsp;INTM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;关闭总中断&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;&nbsp;SXM&nbsp;&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;禁止符号位扩展&nbsp;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;&nbsp;CNF&nbsp;&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;B0块映射为&nbsp;on-chip&nbsp;DARAM*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;&nbsp;OVM&nbsp;&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;累加器结果正常溢出*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SCSR1=0x87FE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//**83FE**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;系统时钟CLKOUT=20*2=40M&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;打开ADC,EVA,EVB,CAN和SCI的时钟*/<br />&nbsp;&nbsp;&nbsp;&nbsp;WDCR=0x006F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;禁止看门狗,看门狗时钟64分频&nbsp;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;KickDog();&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;IFR=0xFFFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;清除中断标志&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;IMR=0x0002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;打开中断2*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;&nbsp;<br /><br />void&nbsp;Timer1Init()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />{&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;EVAIMRA=0x0080;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;定时器1周期中断使能&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EVAIFRA=0xFFFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;清除中断标志&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GPTCONA=0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1PR=2500;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;定时器1初值,定时0.4us*2500=1ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1CNT=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1CON=0x144E;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//增模式,&nbsp;TPS系数40M/16=2.5M,T1使能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;&nbsp;<br /><br /><br /><br />void&nbsp;AD_Sample()<br />{&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL1=0x4000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ADC模块复位&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&nbsp;&nbsp;&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL1=0x0020;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;自由运行,启动/停止模式,双排序器工作模式&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MAXCONV=0x0000;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CHSELSEQ1=0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//第0通道<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL2=0x4000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//复位使排序器指针指向CONV00<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL2=0x2000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;启动ADC转换&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;(ADCTRL2&0x1000)==0x1000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*等待转换完成&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&quot;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;RESULT_0=RESULT0&gt&gt6;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MAXCONV=0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//第8通道&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CHSELSEQ3=0x0008;<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL2=0x0040;<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCTRL2=0x0020;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;(ADCTRL2&0x0010)==0x0010);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;RESULT_8=RESULT8&gt&gt6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;}<br />void&nbsp;Que()<br />{<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;MaxAD0=0;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;MinAD0=AD0[0];<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;MaxAD8=0;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;MinAD8=AD8[0];<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;tempAD0=0;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;tempAD8=0;<br />&nbsp;&nbsp;&nbsp;for(j=0;j&lt18;j++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(AD0[j]&gtMaxAD0)&nbsp;&nbsp;&nbsp;MaxAD0=AD0[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(AD0[j]&ltMinAD0)&nbsp;&nbsp;&nbsp;MinAD0=AD0[j];&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(AD8[j]&gtMaxAD8)&nbsp;&nbsp;&nbsp;MaxAD8=AD8[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(AD8[j]&ltMinAD8)&nbsp;&nbsp;&nbsp;MinAD8=AD8[j];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;for(j=0;j&lt18;j++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tempAD0=tempAD0+AD0[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tempAD8=tempAD8+AD8[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;AD_0=(tempAD0-MaxAD0-MinAD0)/16;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;AD_8=(tempAD8-MaxAD8-MinAD8)/16;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;AD_SIG0=AD_0*4.983/1023;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1023~3.3*(10+5.1)/10=4.983V,对应满量程<br />&nbsp;&nbsp;&nbsp;&nbsp;AD_SIG8=AD_8*4.983/1023;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//电路中采用的是5.1k和10k的电阻分压<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;NOP&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//请将光标移到此处设置断点,并用debug-&gtAnimate监测数据<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />void&nbsp;c_int1()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(PIVR!=0x06)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//高优先级的SCI接收中断<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;INTM&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;SCI_RXDATA=(SCIRXBUF)&nbsp;&&nbsp;0x00FF&nbsp;;&nbsp;&nbsp;//串口接收的数据保存<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;IFR=0xFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;INTM&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br />void&nbsp;c_int2()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*定时器1中断服务程序*/<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(PIVR!=0x27)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;INTM&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;T1CNT=0;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;t0++;<br />&nbsp;&nbsp;&nbsp;&nbsp;t1++;<br />&nbsp;&nbsp;&nbsp;&nbsp;numled0--;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(numled0==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numled0=200;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((PBDATDIR&nbsp;&&nbsp;0x0001)==0x0001)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PBDATDIR=PBDATDIR&nbsp;&&nbsp;0xFFFE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IOPB0=0;LED灭&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PBDATDIR=PBDATDIR&nbsp;|0x0101;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IOPB0=1;LED亮&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />//&nbsp;&nbsp;&nbsp;&nbsp;if((AD_FLAG==0)&((t0%100)==0))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时AD采样<br />//&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AD_FLAG=1;<br />//&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;///*****************************************************///<br />&nbsp;&nbsp;&nbsp;&nbsp;if((t1%100)==0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时循环100msSCI发送<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCI_Send();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;///***************************************************///<br />&nbsp;&nbsp;&nbsp;&nbsp;EVAIFRA=0x80;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;&nbsp;&nbsp;&nbsp;INTM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;&nbsp;<br /><br />void&nbsp;SCI_Init()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///****///<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MCRA=MCRA&nbsp;|&nbsp;0x0003;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IOPA0,&nbsp;IOPA1为串口<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SCICCR=0x0007;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//空闲多处理器模式,8位数据?1位停止位,无奇偶校验位<br />&nbsp;&nbsp;&nbsp;&nbsp;SCICTL1=0x0003;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收,发送,内部时钟使能,SLEEP=1<br />&nbsp;&nbsp;&nbsp;&nbsp;SCICTL2=0x0002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收中断使能<br />&nbsp;&nbsp;&nbsp;&nbsp;SCIPRI=0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//高中断优先级<br />&nbsp;&nbsp;&nbsp;&nbsp;SCIHBAUD=0x0002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//40M,波特率设置为9600<br />&nbsp;&nbsp;&nbsp;&nbsp;SCILBAUD=0x0008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SCICTL1=0x0023;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//串口初始化完成&nbsp;<br />&nbsp;<br />}<br />void&nbsp;SCI_Send()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//发送0x80-0x87,&nbsp;共8个字节数据<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///*********&nbsp;&nbsp;在此处添加虚拟数据进行测试********/////<br />&nbsp;&nbsp;&nbsp;&nbsp;SCITXBUF=0x01;&nbsp;&nbsp;&nbsp;////???????????????????????<br />&nbsp;&nbsp;&nbsp;&nbsp;while((SCICTL2&nbsp;&&nbsp;0x80)==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//************/////<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;KickDog()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*踢除看门狗&nbsp;*/<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WDKEY=0x5555;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDKEY=0xAAAA;<br />}
 楼主| 开心啤酒 发表于 2007-3-16 10:15 | 显示全部楼层

另:本人使用的是TMS320LF2407A

  
 楼主| 开心啤酒 发表于 2007-3-16 12:22 | 显示全部楼层

请高手指点迷津!

问题找到了.<br />SCSR1=0x87FE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//**83FE**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />如果是83FE就对了。是87FE就错了。也就是说倍频是2就对了。如果是1就错了.我想知道这是为什么,请高手给予指点.谢谢了。
nxy825715 发表于 2007-3-16 15:21 | 显示全部楼层

个人见解:

老兄,不要上来就一大把代码,过客没有那么多的时间呀.<br />提问题的时候抓关键.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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