如何将10位数字量输出到12位DAC转换器?请马老师指教
马老师:如果i=ADC_Convert(); (10位DAC转换)
i= (float) (((float)5000 * (float) i) /1023) ;
i是模拟量经运算后,如何将i转换成数字量输出到12位DAC转换器?
PORTB送高8位数;
PORTA送低4位数。
请马老师或高手指教,不胜感激。 基本概念不清楚,问的问题到处是毛病,如何回答是好? 请马老师指教:
如果i= (float) (((float)5000 * (float) i) /1023) ,
在8位机中如何将i进行12位DAC转换输出? i是什么类型的变量?是整形数还是浮点数?是1个字节/2个字节/还是4个字节? i是整型的变量.2个字节的。
如果i是浮点数又如何处理? 当老师不容易 自己检查和回顾,基础的东西是如何学的。
任何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还是不明白,建议你先认真打好基础吧。 记号
页:
[1]