TI中文支持网
TI专业的中文技术问题搜集分享网站

关于MSP430F169的DAC12使用问题

在使用MSP430F169 DAC12的时候发现一个问题,在向DAC12_0DAT或DAC12_1DAT写入数据后,单步运行时能输出预设电压,但是程序整体运行后,输出电压就降为0。DAC12输出后跟了一个电压跟随器的。有人碰到过这个问题吗?怎么解决的?谢谢!

Susan Yang:

请您试试看看是不是哪里需要增加延时, 单步调试可能给了足够时间;另外建议您在线调试时,设置断点, 一步步查

user711579:

回复 Susan Yang:

应该不是延时的问题。下面是源码。到While(1);此处的断点停止时有输出;如果这里没有设置断点,一直运行就没有。当暂停程序运行时又有输出。

涉及DAC的源码:
void init_DAC(void)
{ADC12CTL0 = REF2_5V + REFON; //开启内部参考源 2.5v 必须有;以供DA使用DAC12_0CTL = DAC12SREF_2 + DAC12IR; DAC12_0CTL |= DAC12LSEL_1 + DAC12AMP_7;
DAC12_0CTL |= DAC12CALON;// 启动校验while((DAC12_0CTL & DAC12CALON) != 0); // 等待效验完成DAC12_0CTL |= DAC12ENC;DAC12_1CTL = DAC12SREF_2 + DAC12IR; DAC12_1CTL |= DAC12LSEL_1 + DAC12AMP_7;DAC12_1CTL |= DAC12ENC;
DAC12_1CTL |= DAC12CALON;// 启动校验while((DAC12_1CTL & DAC12CALON) != 0); // 等待效验完成
}

//—————————————————————-
//– Initiate DAC12 ———————————————-
//—————————————————————-
void DAC_output(unsigned char index, unsigned int dac_val)
{switch(index){case 0: DAC12_0DAT = dac_val;break;case 1:DAC12_1DAT = dac_val;break;default:break;}
}

void main(void)
{ init_DAC();DAC_output(0, 0x0788);DAC_output(1, 0x0B9A);while(1);
}

赞(0)
未经允许不得转载:TI中文支持网 » 关于MSP430F169的DAC12使用问题
分享到: 更多 (0)