Я запутался в методе расчета выхода ЦАП в виде десятичного значения.Я использую 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
Буду признателен, если кто-нибудь сможет объяснить мне способ расчета обоих напряжений, о котором я упоминал выше.