Solved
stm32c011f6p6
I needed a help how to implement shutdown mode and wakeup from external reset in my application
while (1)
{
HAL_Delay(100);
// MAINS INPUT
Adc_Mains();
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,1000);
Mains=HAL_ADC_GetValue(&hadc1);
Hands=Hands*2/4095;
HAL_ADC_Stop(&hadc1);
HAL_Delay(100);
//Battery operation
Adc_Vbat();
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,1000);
Vbat=HAL_ADC_GetValue(&hadc1);
Vbat=Vbat*2/4095;
HAL_ADC_Stop(&hadc1);
HAL_Delay(100);
//OPEN CIRCUIT DETECT
Adc_OCD();
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,1000);
OCD=HAL_ADC_GetValue(&hadc1);
OCD=OCD*2/4095;
HAL_ADC_Stop(&hadc1);
HAL_Delay(100);
//BATTERY TEMPARATURE
Adc_Temp();
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,1000);
Temp=HAL_ADC_GetValue(&hadc1);
Temp=Temp*2/4095;
HAL_ADC_Stop(&hadc1);
HAL_Delay(100);
// Check mains and mains fail
if(Mains>0.1)
{
if((Mains<1) &&(Vbat>0.9))
{
En_Emergency(1);
Set_LED(0);
}
else
{
En_Emergency(0);
}
}
if(Mains<1)
{
// OCD=HAL_ADC_GetValue(&hadc1);
if(OCD>0.3||OCD<0.6)
{
Set_LED(0);
}
else if(OCD<0.3 || OCD>0.6)
{
Double_Flash();
}
}
// MAINS ON
if(Mains>1.2)
{
if(Vbat>1.5 || Vbat<0.5) //OPEN CIRCUIT OR ZERO BATT LEVEL
{
Set_LED(0);
Batt_Charge(1);
}
else if(Vbat <0.94 ) // START CHARGING LEVEL
{
Set_LED(1);
Batt_Charge(1);
}
else if(Vbat >0.98 ) // STOP CHARGING LEVEL
{
Set_LED(1);
Batt_Charge(0);
}
//BATTERY TEMPARATURE CHECK
if(Temp<0.17 || Temp>0.83)
{
Batt_Charge(0);
Triple_Flash();
}
else if((Temp>0.17 || Temp<0.83))
{
Batt_Charge(1);
}
}
.if my mains is off for 30 seconds it should be in shutdown mode.I have a option using wakeup4 pin but my config is not working.Can anyone pls give an idea for the implementation
