Commit 60831117 authored by 陈家乐's avatar 陈家乐

🐞 fix:QAC问题:45351 Suspicious: Division by zero

parent 6beb5c28
...@@ -122,35 +122,41 @@ uint16_t ADC_Converse_Scan(ADC_Channel_t ch, uint32_t times, uint16_t *buf) ...@@ -122,35 +122,41 @@ uint16_t ADC_Converse_Scan(ADC_Channel_t ch, uint32_t times, uint16_t *buf)
volatile uint8_t flag; volatile uint8_t flag;
uint32_t total = 0; uint32_t total = 0;
assert_param(IS_SCAN_START_CHAN(ch)); if(times == 0)
{
return 0;
}
else{
assert_param(IS_SCAN_START_CHAN(ch));
INTC_DisableIRQ(ADC_IRQn); // disable INTAD interrupt INTC_DisableIRQ(ADC_IRQn); // disable INTAD interrupt
ADC->ADM0 &= ~ADC_Enable; ADC->ADM0 &= ~ADC_Enable;
ADC->ADM1 |= 0x08; //enable one-shot convertion ADC->ADM1 |= 0x08; //enable one-shot convertion
ADC->ADM1 |= 0x80; //set sacn mode ADC->ADM1 |= 0x80; //set sacn mode
ADC->ADTRG = ADC_ExternalTrig_Software; ADC->ADTRG = ADC_ExternalTrig_Software;
ADC->ADM0 |= ADC_Enable; ADC->ADM0 |= ADC_Enable;
ADC->ADS = ch; ADC->ADS = ch;
for(i=0; i<times;i++) for(i=0; i<times;i++)
{
ADC->ADM0 |= ADC_Start_Cmp; //adc start
for (j=0; j<4; j++)
{ {
while(INTC_GetPendingIRQ(ADC_IRQn) == 0); ADC->ADM0 |= ADC_Start_Cmp; //adc start
INTC_ClearPendingIRQ(ADC_IRQn); // clear INTAD interrupt flag for (j=0; j<4; j++)
{
while(INTC_GetPendingIRQ(ADC_IRQn) == 0);
INTC_ClearPendingIRQ(ADC_IRQn); // clear INTAD interrupt flag
*buf++ = ADC->ADCR; *buf++ = ADC->ADCR;
total += ADC->ADCR; total += ADC->ADCR;
}
}
return (uint16_t)(total / times); // return average value
} }
}
return (total / times); // return average value
} }
/** /**
...@@ -192,7 +198,7 @@ uint16_t ADC_Converse(ADC_Channel_t ch, uint32_t times, uint16_t *buf) ...@@ -192,7 +198,7 @@ uint16_t ADC_Converse(ADC_Channel_t ch, uint32_t times, uint16_t *buf)
*buf++ = ADC->ADCR; *buf++ = ADC->ADCR;
total += ADC->ADCR; total += ADC->ADCR;
} }
return (total / times); // return average value return (uint16_t)(total / times); // return average value
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment