本帖最后由 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转换启动的时候才检测是不是超限然后再中断吗?
|