hai325-289934 发表于 2011-12-1 10:30:26

用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题

用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题
main.c中
ADC_Configuration();
do
  {
     id=ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);
  }while(!id); 
if(adc_wd_flag = 1)
  {
     .......
    ADC_DeInit(ADC1);
  }

stm32f10x_it.c文件下有如下程序:
void ADC1_2_IRQHandler(void)

{
  if(ADC_GetFlagStatus(ADC1, ADC_FLAG_AWD)) 
     {
 adc_wd_flag = 1;
 ADC_ClearITPendingBit(ADC1, ADC_IT_AWD);
 ADC_ClearFlag(ADC1,ADC_FLAG_AWD|ADC_FLAG_STRT);
     }
}

if(adc_wd_flag = 1)中函数又返回到前面重新AD转换,当值在模拟看门狗阀值范围之内时,还是会产生模拟看门狗
中断,能清除的标志位都清了,又初始化ADC1,还是会产生中断,怎么回事啊?如果一开始就在模拟看门狗范围之内
程序没有问题,只有在第一次在阀值之外,第二次在阀值之内时出现第一次同样的情况,产生看门狗中断,
 

发表于 2011-12-1 17:48:48

RE:用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题

应该是你没有清除对应的看门狗的标志位。

hai325-289934 发表于 2011-12-2 10:26:42

RE:用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题

已经解决了,不是中断的问题,是我设定的特值一直保持1,所以一直在循环
页: [1]
查看完整版本: 用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题