12F675 发表于 2008-8-3 18:10:15

如何将10位数字量输出到12位DAC转换器?请马老师指教

马老师:

如果i=ADC_Convert(); (10位DAC转换)   
i= (float) (((float)5000 * (float) i) /1023) ;   
i是模拟量经运算后,如何将i转换成数字量输出到12位DAC转换器?

   
PORTB送高8位数;
PORTA送低4位数。

请马老师或高手指教,不胜感激。

machao 发表于 2008-8-3 21:56:47

基本概念不清楚,问的问题到处是毛病,如何回答是好?

12F675 发表于 2008-8-3 22:50:35

请马老师指教:
如果i= (float) (((float)5000 * (float) i) /1023) ,
在8位机中如何将i进行12位DAC转换输出?

machao 发表于 2008-8-3 23:06:10

i是什么类型的变量?是整形数还是浮点数?是1个字节/2个字节/还是4个字节?

12F675 发表于 2008-8-4 23:36:47

i是整型的变量.2个字节的。
如果i是浮点数又如何处理?

lijun2005 发表于 2008-8-5 12:26:33

当老师不容易

machao 发表于 2008-8-5 16:07:24

自己检查和回顾,基础的东西是如何学的。

任何DAC的输入都是整型数,12位的DAC用2个字节。

因此i是浮点数,则需要先转换成2字节的整型数,在C语言中可以使用强制转换,但注意只有整数部分保留了。实际上在单片机中应该尽量采用整型数计算。

i是整型的变量.2个字节的。这还不会处理?

i是2个字节16位,那么高4位是没有用的,只要低12位。不过lz的设计比较怪,自己给自己找麻烦。

PORTB送高8位数:    PORTB = i >> 4;   
PORTA送低4位数。    PORTA = i << 4;

根据你提供的信息,这个12位的DAC是并口器件,所以还要使用另外的一个I/O模拟WR信号的。

如果LZ还是不明白,建议你先认真打好基础吧。

yinhe 发表于 2008-9-11 21:39:42

记号
页: [1]
查看完整版本: 如何将10位数字量输出到12位DAC转换器?请马老师指教