本帖最后由 xiashengcheng 于 2016-6-7 12:26 编辑
void Adc_dog(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_6);//设置看门狗ADC通道
ADC_AnalogWatchdogThresholdsConfig(ADC1, data_DLset, 0x00);//设置看门狗通道高限/低限。
ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);//设置规则组单次转换那个啥
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);//开门放狗使能
}
void NVIC_ADC_Configuration(void)//ADC¿´ÃŹ·
{
NVIC_InitTypeDef NVIC_InitStructure;
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //????
NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn;//设置中断向量地址
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//开使能
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//那啥优先权
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;//那啥优先权
NVIC_Init(&NVIC_InitStructure);
}
首先这个程序现在是可以正常ADC超限中断了。
但是我有几个地方还是没有明白望高手指点:
1.看门狗中断是在看门狗启动后就可以像GPIO——EXTI一个中断吗(当外部电压信号高与设定值自动进入中断吗)
2,看门狗如果不是第一种情况工作那么是:看门狗启动后,然后在每一次ADC转换启动的时候才检测是不是超限然后再中断吗?
|