Я никогда не пользовался спящим режимом. Но теперь хочу сделать приборчик на батарейке и возник вопрос как правильно пользоваться спящим режимом.
CODE
void main(void)
{
while(1)
{
//interrupt from timer capture compare
if(timer_comp0)
{
timer_comp0 = 0;
ADC_Start(ADC0, adcStartSingle);
//ADC_Start(ADC0, adcStartScan);
}
//interrupt from ADC
if(adc_transfer_complete)
{
adc_transfer_complete = 0;
//do something
}
//interrupt from timer overflow
if(timer_uf)
{
//do something
//EMU_EnterEM1();
//EMU_EnterEM2(false);
}
if (sysFlags&MEAS_MODE)
{
if (sysFlags&PULSE100)
{
//do somrthing
}
if (sysFlags&PULSE1000)
{
//do something
}
}
if (sysFlags&UPDATE_MAIN_COUNTER)
{
//do something
}
//interrupt from LEUART-RX
if( rx_packet_recieved)
{
//do something
}
EMU_EnterEM2(true);
} //while
/* Never going to reach this statement. */
return 0;
}
Если я в конце вхожу в спящий режим то программа перестает правильно работать хотя прерывания от таймера должны выводить из спящего режима.