<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Deep Sleep seems to disable RTC interrupt in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Deep-Sleep-seems-to-disable-RTC-interrupt/m-p/524628#M7264</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nkarakotas on Fri Jul 12 19:14:55 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Im using FreeRtos with Tickless enabled. When I try and go into deep sleep the RTC interrupt doesnt seem to fire. When I try it with sleep mode I can see it firing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Am I missing something?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;RTC Code

&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_Init(LPC_RTC);
/* Disable RTC interrupt */
NVIC_DisableIRQ(RTC_IRQn);
/* preemption = 1, sub-priority = 1 */
NVIC_SetPriority(RTC_IRQn, configRTC_INTERRUPT_PRIORITY);
/* Enable rtc (starts increase the tick counter and second counter register) */
//RTC_ResetClockTickCounter(LPC_RTC);
RTC_Cmd(LPC_RTC, ENABLE);
RTC_CalibCounterCmd(LPC_RTC, DISABLE);

/* Set the CIIR for second counter interrupt*/
RTC_CntIncrIntConfig (LPC_RTC, RTC_TIMETYPE_SECOND, ENABLE);
RTC_AlarmIntConfig(LPC_RTC,RTC_TIMETYPE_SECOND,ENABLE);
RTC_SetAlarmTime (LPC_RTC, RTC_TIMETYPE_SECOND, 2);

/* Enable RTC interrupt */
NVIC_EnableIRQ(RTC_IRQn);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sleep mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void RTC_IRQHandler(void)
{
static uint32_t tick=0;
/* This is increment counter interrupt*/
if (RTC_GetIntPending(LPC_RTC, RTC_INT_COUNTER_INCREASE))
{
// Clear pending interrupt
tick++;
RTC_ClearIntPending(LPC_RTC, RTC_INT_COUNTER_INCREASE);

}

if(RTC_GetIntPending(LPC_RTC,RTC_INT_ALARM)){
RTC_ClearIntPending(LPC_RTC,RTC_INT_ALARM);
WDT_Feed();
if(tick % 2)
GPIO_SetValue(2, 1&amp;lt;&amp;lt;9);
else
GPIO_ClearValue(2, 1&amp;lt;&amp;lt;9);
}

}

void vPreSleepProcessing( unsigned long xExpectedIdleTime ){
deepsleep();

}

void vPostSleepProcessing( unsigned long xExpectedIdleTime ){

//SystemInit();
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nick&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:11:21 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:11:21Z</dc:date>
    <item>
      <title>Deep Sleep seems to disable RTC interrupt</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Deep-Sleep-seems-to-disable-RTC-interrupt/m-p/524628#M7264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nkarakotas on Fri Jul 12 19:14:55 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Im using FreeRtos with Tickless enabled. When I try and go into deep sleep the RTC interrupt doesnt seem to fire. When I try it with sleep mode I can see it firing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Am I missing something?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;RTC Code

&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_Init(LPC_RTC);
/* Disable RTC interrupt */
NVIC_DisableIRQ(RTC_IRQn);
/* preemption = 1, sub-priority = 1 */
NVIC_SetPriority(RTC_IRQn, configRTC_INTERRUPT_PRIORITY);
/* Enable rtc (starts increase the tick counter and second counter register) */
//RTC_ResetClockTickCounter(LPC_RTC);
RTC_Cmd(LPC_RTC, ENABLE);
RTC_CalibCounterCmd(LPC_RTC, DISABLE);

/* Set the CIIR for second counter interrupt*/
RTC_CntIncrIntConfig (LPC_RTC, RTC_TIMETYPE_SECOND, ENABLE);
RTC_AlarmIntConfig(LPC_RTC,RTC_TIMETYPE_SECOND,ENABLE);
RTC_SetAlarmTime (LPC_RTC, RTC_TIMETYPE_SECOND, 2);

/* Enable RTC interrupt */
NVIC_EnableIRQ(RTC_IRQn);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sleep mode&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void RTC_IRQHandler(void)
{
static uint32_t tick=0;
/* This is increment counter interrupt*/
if (RTC_GetIntPending(LPC_RTC, RTC_INT_COUNTER_INCREASE))
{
// Clear pending interrupt
tick++;
RTC_ClearIntPending(LPC_RTC, RTC_INT_COUNTER_INCREASE);

}

if(RTC_GetIntPending(LPC_RTC,RTC_INT_ALARM)){
RTC_ClearIntPending(LPC_RTC,RTC_INT_ALARM);
WDT_Feed();
if(tick % 2)
GPIO_SetValue(2, 1&amp;lt;&amp;lt;9);
else
GPIO_ClearValue(2, 1&amp;lt;&amp;lt;9);
}

}

void vPreSleepProcessing( unsigned long xExpectedIdleTime ){
deepsleep();

}

void vPostSleepProcessing( unsigned long xExpectedIdleTime ){

//SystemInit();
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nick&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:11:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Deep-Sleep-seems-to-disable-RTC-interrupt/m-p/524628#M7264</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:11:21Z</dc:date>
    </item>
  </channel>
</rss>

