共2条
1/1 1 跳转至页
xiaoliang,liaoduck,3qxjF149,AD,5V xiaoliang,liaoduck,3qxjF149的AD转换口怎么会输出高电平(2。5V
问
我用F149做振动信号采集,为什么在进行AD转换时其AD口(比如A0)怎么会输出高电平(2。5V)?我的信号就没有用了。???/
答 1:
你的初始化对吗,这几天我也在做A0的AD,没出现你这样的问题,把你的初始化程序贴出来看看。
bis.b #BIT0,&P6SEL ;
SetupADC12 mov #SHT0_8+MSC+REFON+ADC12ON,&ADC12CTL0
mov #SHP+CONSEQ_2,&ADC12CTL1
mov.b #SREF_1,&ADC12MCTL0
mov #BIT0,&ADC12IE
bis #ENC,&ADC12CTL0
bis #ADC12SC,&ADC12CTL0
这是我的初始化 答 2: ADC12CTL0&=~ENC;
ADC12CTL0=ADC12ON+SHT0_6+MSC;
//ADC12CTL1=CONSEQ_0+SHS_0+ADC12SSEL_2;
ADC12CTL1=CONSEQ_2+SHP;
ADC12MCTL0=INCH_1+SREF_6;
ADC12IE=BIT0;
ADC12CTL0|=ENC;
}
//--------------A/D转换中断服务程序------------------------------------
interrupt [ADC_VECTOR] void ADC(void)
{
uint ADvalue;
switch(ADC12IV)
{
case 0x02: break;
case 0x04: break;
case 0x06:
//------------采样10次求平均值------------------------------------------
ADvalue=ADC12MEM0; //---读取AD值---------
AD_Sum+=ADvalue;
if(AD_Change_Times==18)
{ AD_Min=ADvalue; AD_Max=ADvalue;
}
else
{ if(ADvalue>AD_Max) AD_Max=ADvalue;
else
{if(ADvalue<AD_Min) AD_Min=ADvalue;}
}
AD_Change_Times--;
if(!AD_Change_Times)
{
AD_Sum=AD_Sum-AD_Max-AD_Min;//---去除最大最小值------
AD_Result=AD_Sum>>4;
AD_Change_Times=18;
AD_Min=0; AD_Max=0; AD_Sum=0;
}
ADC12CTL0|=ADC12SC; //-------立即启动下一次转换.---
_NOP();
//----------------------------------------------------------------------
default: break;
}
} 答 3: P6SEL设置了么?
bis.b #BIT0,&P6SEL ;
SetupADC12 mov #SHT0_8+MSC+REFON+ADC12ON,&ADC12CTL0
mov #SHP+CONSEQ_2,&ADC12CTL1
mov.b #SREF_1,&ADC12MCTL0
mov #BIT0,&ADC12IE
bis #ENC,&ADC12CTL0
bis #ADC12SC,&ADC12CTL0
这是我的初始化 答 2: ADC12CTL0&=~ENC;
ADC12CTL0=ADC12ON+SHT0_6+MSC;
//ADC12CTL1=CONSEQ_0+SHS_0+ADC12SSEL_2;
ADC12CTL1=CONSEQ_2+SHP;
ADC12MCTL0=INCH_1+SREF_6;
ADC12IE=BIT0;
ADC12CTL0|=ENC;
}
//--------------A/D转换中断服务程序------------------------------------
interrupt [ADC_VECTOR] void ADC(void)
{
uint ADvalue;
switch(ADC12IV)
{
case 0x02: break;
case 0x04: break;
case 0x06:
//------------采样10次求平均值------------------------------------------
ADvalue=ADC12MEM0; //---读取AD值---------
AD_Sum+=ADvalue;
if(AD_Change_Times==18)
{ AD_Min=ADvalue; AD_Max=ADvalue;
}
else
{ if(ADvalue>AD_Max) AD_Max=ADvalue;
else
{if(ADvalue<AD_Min) AD_Min=ADvalue;}
}
AD_Change_Times--;
if(!AD_Change_Times)
{
AD_Sum=AD_Sum-AD_Max-AD_Min;//---去除最大最小值------
AD_Result=AD_Sum>>4;
AD_Change_Times=18;
AD_Min=0; AD_Max=0; AD_Sum=0;
}
ADC12CTL0|=ADC12SC; //-------立即启动下一次转换.---
_NOP();
//----------------------------------------------------------------------
default: break;
}
} 答 3: P6SEL设置了么?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |