wulin 发表于 2021-12-29 09:55 可能我描述的不清楚,这个压力传感器共4个脚,I+ I-为供电,有气压时O+和O-两个脚会有0-60mV的压差。问了一下单片机厂商,这种情况应该是用两路ADC口分别检测,结果相减,能不能在上面的中断程序里同时选两个通道,分时得结果,最好有例子。 |
zhth1979 发表于 2021-12-29 09:06 ADC不能采集处理负电压信号。在量程范围内使差分放大器的输出电压限制在0~AVCC范围即可。 |
单端输入,可以了,传感器要是差分输入,程序该如何修改? |
wulin 发表于 2021-12-27 08:36 明白了,谢谢了,我回去试试。不行再请教。 |
angmall 发表于 2021-12-27 08:33 谢谢,我试试。 |
void ADC_IN() { P1M1 = 0x01; P1M0 = 0x00; //设置 P1.0 为 ADC 输入口 P_SW2|=0X80; //打开特殊功能寄存器 ADCTIM=0X3F; //设置ADC内部时序 P_SW2&=0X7F; //关闭特殊功能寄存器 ADCCFG=0X0F; //设置ADC结果左对齐+ADC时钟为系统时钟/2/16 ADC_CONTR=0X80; //使能ADC模块(ADC电源打开并选择ADC通道P1.0/ADC0) EADC=1; //使能ADC中断 (ADC中断打开) EA=1; //总开关打开 ADC_CONTR|=0X40;//启动AD转换 while(1);//不能这样生搬硬套 } |
void ADC_IN() { P1M1 = 0x01; P1M0 = 0x00; //设置 P1.0 为 ADC 输入口 P_SW2|=0X80; //打开特殊功能寄存器 ADCTIM=0X3F; //设置ADC内部时序 P_SW2&=0X7F; //关闭特殊功能寄存器 ADCCFG=0X0F; //设置ADC结果左对齐+ADC时钟为系统时钟/2/16 ADC_CONTR=0X80; //使能ADC模块(ADC电源打开并选择ADC通道P1.0/ADC0) EADC=1; //使能ADC中断 (ADC中断打开) EA=1; //总开关打开 ADC_CONTR|=0X40; //启动AD转换 //while(1); <-------- 这个不用加了 } |
顶一下 |