STM8S AD转换问题求助
停止连续模式下的AD转换描述:To stop continuous conversion,reset the CONT bit to stop conversion or reset the ADON bit to power off ADC可是我CONT置0怎么还是会进入AD中断。
main()
{
CLOCK_INIT();
GPIO_INIT();
ADC_INIT();
EOCIE = 1;//开启EOC中断
_asm("rim");
ADON = 1;//启动AD转换
while (1)
{
if(ADC_DATE > 0x48)
{
LED = ON;
}
else
{
LED = OFF;
}
}
}
void ADC_INIT(void)
{
u8 i=112;
ADC_CSR = 0X04;//PD3(AIN4)为输入通道
ADC_CR1 = 0X22;//f(ADC)=4M,连续转换
ADC_CR2 = 0X30;//数据左对齐
ADC_CR3 = 0X00;//有数据缓存
ADC_TDRL |= SETBIT4;//取消AIN4的施密特
ADON = 1;//ADC唤醒
while(i--);
}
@far @interrupt void ADC_GETInterrupt (void)
{
u8 i;
NUM++;
EOC = 0;
ADC_CR1 &= CLRBIT1;
for(i=0;i<=9;i++)
{
ADC_DATE = *(&ADC_DB0RH+i+i);
}
return;
}
搞错了吧,EOC = 0;??是个啥东西? ST单片机的寄存器,没直接赋值的,估计你搞错了。 ts2000 发表于 2016-12-8 15:21
ST单片机的寄存器,没直接赋值的,估计你搞错了。
谢谢你能回我 :loveliness: 程序省略了一些,头文件 预定义和无关程序没写 。_BoolEOC @ADC_CSR:7,中断清标志位。
页:
[1]