1

不好意思,微芯片论坛很慢,我更喜欢用 Stack Overflow 提问。

dsPIC33FJ06GS101/X02 and dsPIC33FJ16GSX02/X04    device 

 Sample Code   
              // configure comparator2  


    CMPCON2bits.CMPON = 1;   // enable comparator 
CMPCON2bits.INSEL = 1;   // select CMP2B input pin (RB0) 
CMPCON2bits.RANGE = 1;   // select high range, max DAC value = Avdd/2        
//CMPDACx: COMPARATOR DAC CONTROL REGISTER        
//CMREF<9:0>: Comparator Reference Voltage Select bits 
CMPDAC2 = CURR_HWLIM;    // DAC threshold 


  #define CURR_HWLIM 1023 // 1023 // 10.15 * 101A  

Microchip 示例代码设置CURR_HWLIM是 1023A 到CMPDAC2,它需要电压。

这是一个错误吗?

4

1 回答 1

0

请参见数据表中的寄存器 20-2: CMPDACx:比较器 DAC 控制寄存器

bit 9-0 CMREF<9:0>: Comparator Reference Voltage Select bits

1111111111 = (CMREF * INTREF/1024) or (CMREF * (AVDD/2)/1024) volts depending on
RANGE bit or (CMREF * EXTREF/1024) if EXTREF is set
.
.
.
0000000000 = 0.0 volts

RANGE位似乎设置为1,所以公式是VOLTAGE = CMPDAC2 * (AVDD/2) / 1024

要根据输入电压计算数字值,请使用CMPDAC2 = 1024 * VOLTAGE / (AVDD/2)

于 2013-07-16T22:01:03.127 回答