TI中文支持网
TI专业的中文技术问题搜集分享网站

初学 tms320f28035 遇到adc相关的问题

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA  10  EA EA 10 10 等不是想要的结果

谢谢

Chen Jones:

能详细说一下吗? 没太看明白。

你直接看一下AdcResult.ADCRESULT0 这个寄存器里面的数据就可以了。

然后在观察窗口输入a 和b, 就分别知道a和b的值了

输出的结果就应该是a和b

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA  10  EA EA 10 10 等不是想要的结果

谢谢

xiaoping wang:

回复 Chen Jones:

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA  10  EA EA 10 10 等不是想要的结果

谢谢

Mak he:

scia_xmit(a); 发送的是低八位,SCITXBUF是个8位的寄存器;

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA  10  EA EA 10 10 等不是想要的结果

谢谢

Joey Mao:

根据你所说,看到的结果寄存器中值是0EA1,然后执行

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

串口助手得到的结果就是EA 10;

如果要得到0E A1,应该是

 a=AdcResult.ADCRESULT0>>8;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0;       scia_xmit(b);

函数scia_xmit(a)是发送结果寄存器的低八位,对于16位数据需要先进行移位、或&0xff 等处理 

 a=AdcResult.ADCRESULT0>>4;       scia_xmit(a); 

 b=AdcResult.ADCRESULT0<<4;       scia_xmit(b);

拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA  10  EA EA 10 10 等不是想要的结果

谢谢

xiaoping wang:

回复 Joey Mao:

谢谢  

我发现用那种方法得到的结果不稳定,得到0EA1   0E A1  不难这个我已经实现了

但用这个方法得到的结果会出现重复的值 如0E 0E 0E A1 0E A1 A1等

我后来准备写一个类似于printf 的函数解决这个问题  直接调用printf函数会显示0x2b12  超过了0x1000的存储范围

我又发了个帖子

TMS320F28035 adc转换结果在电脑上显示

那里有我准备参考的程序

赞(0)
未经允许不得转载:TI中文支持网 » 初学 tms320f28035 遇到adc相关的问题
分享到: 更多 (0)