Рассчитать вывод ЦАП как десятичное значение - PullRequest
0 голосов
/ 19 сентября 2018

Я запутался в методе расчета выхода ЦАП в виде десятичного значения.Я использую DAC7741.Напряжение, которое мне нужно оценить, называется Vint.Приведенный ниже код является примером, на который я ссылаюсь.Но я не знаю, почему напряжение = DAC_buf * 3052 ??Я проверил таблицу данных DAC7741, но не увидел никакой подсказки 3052. Пожалуйста, объясните мне, как мы можем получить эту формулу.Спасибо!

                unsigned long DAC_buf   =0x0000; 
                unsigned char idata Vint_H              _at_ 0xB3;
                unsigned char idata Vint_L              _at_ 0xB4;

                DAC_buf += Vint_H;
                DAC_buf = DAC_buf << 8;
                DAC_buf += Vint_L;

                if(Vint_H<0x80)
                {   
                    DAC_buf = 0x8000-DAC_buf;
                    voltage = DAC_buf *3052;
                    voltage_ten_thousand = (voltage%100000000)/10000000;
                    voltage_thousand = (voltage%10000000)/1000000;
                    voltage_hundred = (voltage%1000000)/100000 ;
                    voltage_ten = (voltage%100000)/10000 ;
                    voltage_unit = (voltage%10000)/1000;
                }
                else
                {
                    DAC_buf = DAC_buf- 0x8000;
                    voltage = DAC_buf *3052;
                    voltage_ten_thousand = (voltage%100000000)/10000000;
                    voltage_thousand =     (voltage%10000000)/1000000;
                    voltage_hundred =      (voltage%1000000)/100000 ;
                    voltage_ten =          (voltage%100000)/10000 ;
                    voltage_unit =         (voltage%10000)/1000;
                }  

Другое напряжение, которое мне нужно рассчитать по мощности IC (LTC2606).

voltage = 13050- OVSS_buf*100;   // OVSS_buf is the hex value assigned to the                      power IC

Я получил эту формулу после попытки и ошибки несколько раз.Несмотря на то, что я получил правильный результат для отображения на мониторе, я все еще не знаю, как получить правильную формулу.Я проверил LTC2606 формулу Vout = (k / 2 ^ 16) * Vcc.Vcc = 3V

Буду признателен, если кто-нибудь сможет объяснить мне способ расчета обоих напряжений, о котором я упоминал выше.

...