<?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 Re: Self Wakeup Timer (WKT) on LPC8XX not waking! in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798290#M32113</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well I think I found the issue, it seems that an additional line is required before loading the count into the SWT register, see below. I'm not quite sure but it seems like the inline function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STATIC INLINE WKT_CLKSRC_T Chip_WKT_GetClockSource(LPC_WKT_T *pWKT)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return (WKT_CLKSRC_T) (pWKT-&amp;gt;CTRL &amp;amp; WKT_CTRL_CLKSEL);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Was not returning the correct clock source. Still haven't discovered the reason..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As an aside it seems like there's some misnaming of the files in lpc_chip_8xx library I'm using. For example the WKT functions are contained in a file called wwdt_8xx.c &amp;amp; the WWDT functions in the wkt_8xx.c. A little confusing!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/*&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : lighthouseD.c&lt;BR /&gt;&amp;nbsp;Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : v.01&lt;BR /&gt;&amp;nbsp;Copyright&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Description : Create lighthouse type effect with LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : Final project for release onto stand alone chip!!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : NOTE: If board becomes 'bricked' connect pins 7 &amp;amp; 8 of port J7 together&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : i.e. PIO0_1 Pin 5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : then connect USB cable (places into ISP mode)&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&lt;BR /&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;#if defined(NO_BOARD_LIB)&lt;BR /&gt;#include "chip.h"&lt;BR /&gt;#else&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;BR /&gt;&lt;BR /&gt;#define LED1_GPIO_PORT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define LED1_GPIO_BIT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define RAMP_TIME 2 // How many seconds to go from off to full bright &amp;amp; vice-versa&lt;BR /&gt;&lt;BR /&gt;volatile uint32_t millis = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;//millisecond counter&lt;BR /&gt;&lt;BR /&gt;void SysTick_Handler(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//our systick interrupt handler&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;millis++;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void delay_ms(uint32_t ms) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay (ms)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t now = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while ((millis - now) &amp;lt; ms);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void WKT_IRQHandler(void){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Clear self wakeup timer (WKT) interrupt request */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_ClearIntStatus(LPC_WKT);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void deep_power_down (uint32_t secs){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Disable wakeup pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_SetPowerDownControl(LPC_PMU, PMU_DPDCTRL_LPOSCEN | PMU_DPDCTRL_LPOSCDPDEN | PMU_DPDCTRL_WAKEPAD);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Needed?&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_ClearPendingIRQ(WKT_IRQn);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_DisableIRQ(WKT_IRQn);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Init self wakeup timer (WKT)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable clock for WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Reset WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;PRESETCTRL &amp;amp;= ~(1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;PRESETCTRL |=&amp;nbsp; (1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* set LPOSCDPDEN and LPOSCEN to 1 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_PMU-&amp;gt;DPDCTRL |= (3 &amp;lt;&amp;lt; 2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable Interrupt for WKT in NVIC */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(WKT_IRQn);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Config WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_WKT-&amp;gt;CTRL&amp;nbsp; = (1 &amp;lt;&amp;lt; 2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_SetClockSource(LPC_WKT, WKT_CLKSRC_10KHZ);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;lt;&amp;lt;--------------LINE REQUIRED!&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_LoadCount(LPC_WKT, Chip_WKT_GetClockRate(LPC_WKT) * secs);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_WKT-&amp;gt;CTRL = 1;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* WKT can wake up */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;STARTERP1 = (1 &amp;lt;&amp;lt; 15);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Go to deep power down mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_PMU-&amp;gt;PCON = 0x3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_DeepPowerDownState(LPC_PMU);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Includes __WFI();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//__WFI();&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;int main(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;volatile static int c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int time_per = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Percentage time for LED to be on&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int ms_old = 0;&lt;BR /&gt;&lt;BR /&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Read clock settings and update SystemCoreClock variable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SystemCoreClockUpdate();&lt;BR /&gt;#if !defined(NO_BOARD_LIB)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set up and initialize all required blocks and&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// functions related to the board hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Board_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set the LED to the state of "On"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Board_LED_Set(0, true);&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup systick clock interrupt @1ms&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// This function is in core_cm0plus.h in lpc_chip_8xx project&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SysTick_Config(Chip_Clock_GetSystemClockRate()/1000);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup LED port pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Ensure off&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check did we restart from deep power down?&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((Chip_PMU_GetSleepFlags(LPC_PMU) &amp;amp; PMU_PCON_DPDFLAG) != FALSE){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// We woke from deep power down, must clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_ClearSleepFlags(LPC_PMU, PMU_PCON_DPDFLAG | PMU_PCON_SLEEPFLAG );&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Flash LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay_ms(300);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get brighter over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 1; time_per &amp;lt; 100;){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Increase brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Dwell&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;delay_ms(1000);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get dimmer over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 100; time_per &amp;gt; 1;){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// decrease brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per--;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Switch off &amp;amp; wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;deep_power_down(6);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0 ;&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 24 Nov 2018 15:08:32 GMT</pubDate>
    <dc:creator>leo838</dc:creator>
    <dc:date>2018-11-24T15:08:32Z</dc:date>
    <item>
      <title>Self Wakeup Timer (WKT) on LPC8XX not waking!</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798289#M32112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to get the self wakeup timer to restart an LPC810 (standalone, no board) after a deep power down. The application is to simulate a 'lighthouse' type effect with an LED, power down &amp;amp; after approx 8 secs reset &amp;amp; repeat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/*&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : lighthouseD.c&lt;BR /&gt;&amp;nbsp;Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : v.01&lt;BR /&gt;&amp;nbsp;Copyright&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Description : Create lighthouse type effect with LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : Final project for release onto stand alone chip!!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : NOTE: If board becomes 'bricked' connect pins 7 &amp;amp; 8 of port J7 together&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : i.e. PIO0_1 Pin 5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : then connect USB cable (places into ISP mode)&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;#if defined(NO_BOARD_LIB)&lt;BR /&gt;#include "chip.h"&lt;BR /&gt;#else&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LED1_GPIO_PORT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define LED1_GPIO_BIT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define RAMP_TIME 2 // How many seconds to go from off to full bright &amp;amp; vice-versa&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;volatile uint32_t millis = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;//millisecond counter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SysTick_Handler(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//our systick interrupt handler&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;millis++;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void delay_ms(uint32_t ms) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay (ms)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t now = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while ((millis - now) &amp;lt; ms);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void WKT_IRQHandler(void){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Clear self wakeup timer (WKT) interrupt request */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_ClearIntStatus(LPC_WKT);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void deep_power_down (uint32_t secs){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Function to put micro into deep power down (most power saving mode)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Woken by self wake-up timer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Full reset on wake-up&lt;BR /&gt;// Disable wakeup pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_SetPowerDownControl(LPC_PMU, PMU_DPDCTRL_WAKEPAD);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Alarm/wake timer as chip wakeup source */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SYSCTL_EnablePeriphWakeup(SYSCTL_WAKEUP_WKTINT);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable and reset WKT clock */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_WKT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SYSCTL_PeriphReset(RESET_WKT);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* 10KHz clock source */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_SetClockSource(LPC_WKT, WKT_CLKSRC_10KHZ);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Setup for wakeup in 5s */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_LoadCount(LPC_WKT, Chip_WKT_GetClockRate(LPC_WKT) * 8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Enable deep power down mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Will restart with full reset&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Note: This function includes a __WFI !!&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_DeepPowerDownState(LPC_PMU);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_SetPowerDownControl(LPC_PMU, PMU_DPDCTRL_LPOSCEN | PMU_DPDCTRL_LPOSCDPDEN | PMU_DPDCTRL_WAKEPAD);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Ensure deep power down not inhibited (PCON, bit 3)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Can only be cleared by chip reset&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup for wakeup in X s&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_LoadCount(LPC_WKT, Chip_WKT_GetClockRate(LPC_WKT) * secs);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Enable deep power down mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Will restart with full reset&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Note: This function includes a __WFI !!&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_DeepPowerDownState(LPC_PMU);&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;volatile static int c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int time_per = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Percentage time for LED to be on&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int ms_old = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Read clock settings and update SystemCoreClock variable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SystemCoreClockUpdate();&lt;BR /&gt;#if !defined(NO_BOARD_LIB)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set up and initialize all required blocks and&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// functions related to the board hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Board_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set the LED to the state of "On"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Board_LED_Set(0, true);&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup systick clock interrupt @1ms&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// This function is in core_cm0plus.h in lpc_chip_8xx project&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SysTick_Config(Chip_Clock_GetSystemClockRate()/1000);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup LED port pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, false);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Ensure off&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check did we restart from deep power down?&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((Chip_PMU_GetSleepFlags(LPC_PMU) &amp;amp; PMU_PCON_DPDFLAG) == TRUE){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// We woke from deep power down, must clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_ClearSleepFlags(LPC_PMU, PMU_PCON_DPDFLAG);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Flash LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;delay_ms(1000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get brighter over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 1; time_per &amp;lt; 100;){&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Increase brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Dwell&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay_ms(1000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//deep_sleep(1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get dimmer over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 100; time_per &amp;gt; 1;){&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// decrease brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per--;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Switch off &amp;amp; wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay_ms (8000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;deep_power_down(8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0 ;&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The chip appears to successfully enter a power down state but fails to restart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone help?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS. I notice that there are similar functions in syscon_8xx.h &amp;amp; pmu_8xx.h. Which should be used? A little confusing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 24 Nov 2018 10:57:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798289#M32112</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2018-11-24T10:57:59Z</dc:date>
    </item>
    <item>
      <title>Re: Self Wakeup Timer (WKT) on LPC8XX not waking!</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798290#M32113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well I think I found the issue, it seems that an additional line is required before loading the count into the SWT register, see below. I'm not quite sure but it seems like the inline function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STATIC INLINE WKT_CLKSRC_T Chip_WKT_GetClockSource(LPC_WKT_T *pWKT)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return (WKT_CLKSRC_T) (pWKT-&amp;gt;CTRL &amp;amp; WKT_CTRL_CLKSEL);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Was not returning the correct clock source. Still haven't discovered the reason..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As an aside it seems like there's some misnaming of the files in lpc_chip_8xx library I'm using. For example the WKT functions are contained in a file called wwdt_8xx.c &amp;amp; the WWDT functions in the wkt_8xx.c. A little confusing!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/*&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : lighthouseD.c&lt;BR /&gt;&amp;nbsp;Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : v.01&lt;BR /&gt;&amp;nbsp;Copyright&amp;nbsp;&amp;nbsp; : $(OFO)&lt;BR /&gt;&amp;nbsp;Description : Create lighthouse type effect with LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : Final project for release onto stand alone chip!!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : NOTE: If board becomes 'bricked' connect pins 7 &amp;amp; 8 of port J7 together&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : i.e. PIO0_1 Pin 5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; : then connect USB cable (places into ISP mode)&lt;BR /&gt;===============================================================================&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&lt;BR /&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;#if defined(NO_BOARD_LIB)&lt;BR /&gt;#include "chip.h"&lt;BR /&gt;#else&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;BR /&gt;&lt;BR /&gt;#define LED1_GPIO_PORT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define LED1_GPIO_BIT_NUM&amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define RAMP_TIME 2 // How many seconds to go from off to full bright &amp;amp; vice-versa&lt;BR /&gt;&lt;BR /&gt;volatile uint32_t millis = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;//millisecond counter&lt;BR /&gt;&lt;BR /&gt;void SysTick_Handler(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//our systick interrupt handler&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;millis++;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void delay_ms(uint32_t ms) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay (ms)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t now = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while ((millis - now) &amp;lt; ms);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void WKT_IRQHandler(void){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Clear self wakeup timer (WKT) interrupt request */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_ClearIntStatus(LPC_WKT);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void deep_power_down (uint32_t secs){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Disable wakeup pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_SetPowerDownControl(LPC_PMU, PMU_DPDCTRL_LPOSCEN | PMU_DPDCTRL_LPOSCDPDEN | PMU_DPDCTRL_WAKEPAD);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Needed?&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_ClearPendingIRQ(WKT_IRQn);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_DisableIRQ(WKT_IRQn);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Init self wakeup timer (WKT)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable clock for WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Reset WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;PRESETCTRL &amp;amp;= ~(1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;PRESETCTRL |=&amp;nbsp; (1 &amp;lt;&amp;lt; 9);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* set LPOSCDPDEN and LPOSCEN to 1 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_PMU-&amp;gt;DPDCTRL |= (3 &amp;lt;&amp;lt; 2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable Interrupt for WKT in NVIC */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(WKT_IRQn);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Config WKT */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_WKT-&amp;gt;CTRL&amp;nbsp; = (1 &amp;lt;&amp;lt; 2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_SetClockSource(LPC_WKT, WKT_CLKSRC_10KHZ);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;lt;&amp;lt;--------------LINE REQUIRED!&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_WKT_LoadCount(LPC_WKT, Chip_WKT_GetClockRate(LPC_WKT) * secs);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_WKT-&amp;gt;CTRL = 1;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* WKT can wake up */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SYSCON-&amp;gt;STARTERP1 = (1 &amp;lt;&amp;lt; 15);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Go to deep power down mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_PMU-&amp;gt;PCON = 0x3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_DeepPowerDownState(LPC_PMU);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Includes __WFI();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//__WFI();&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;int main(void) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;volatile static int c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int time_per = 0;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Percentage time for LED to be on&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int ms_old = 0;&lt;BR /&gt;&lt;BR /&gt;#if defined (__USE_LPCOPEN)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Read clock settings and update SystemCoreClock variable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SystemCoreClockUpdate();&lt;BR /&gt;#if !defined(NO_BOARD_LIB)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set up and initialize all required blocks and&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// functions related to the board hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Board_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Set the LED to the state of "On"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Board_LED_Set(0, true);&lt;BR /&gt;#endif&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup systick clock interrupt @1ms&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// This function is in core_cm0plus.h in lpc_chip_8xx project&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SysTick_Config(Chip_Clock_GetSystemClockRate()/1000);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Setup LED port pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&amp;nbsp;&amp;nbsp; &amp;nbsp;// Ensure off&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check did we restart from deep power down?&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((Chip_PMU_GetSleepFlags(LPC_PMU) &amp;amp; PMU_PCON_DPDFLAG) != FALSE){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// We woke from deep power down, must clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_PMU_ClearSleepFlags(LPC_PMU, PMU_PCON_DPDFLAG | PMU_PCON_SLEEPFLAG );&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Flash LED&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//delay_ms(300);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get brighter over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 1; time_per &amp;lt; 100;){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Increase brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Dwell&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;delay_ms(1000);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get dimmer over RAMP_TIME&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis; // Record time&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for&amp;nbsp; (time_per = 100; time_per &amp;gt; 1;){&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, TRUE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; time_per; c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (c = 0; c &amp;lt; (100 -time_per); c++);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((millis - ms_old) &amp;gt;&amp;nbsp; (RAMP_TIME * 10)){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// decrease brightness&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_per--;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ms_old = millis;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Switch off &amp;amp; wait&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED1_GPIO_PORT_NUM, LED1_GPIO_BIT_NUM, FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;deep_power_down(6);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0 ;&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 24 Nov 2018 15:08:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798290#M32113</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2018-11-24T15:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: Self Wakeup Timer (WKT) on LPC8XX not waking!</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798291#M32114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.&lt;BR /&gt;To provide the fastest possible support, I'd highly recommend you to refer to the periph_wkt demo in the SDK library. And you can download the library via the link.&lt;BR /&gt;&lt;A href="https://www.nxp.com/support/developer-resources/software-development-tools/lpc-developer-resources-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc8xx:LPCOPEN-SOFTWARE-FOR-LPC8XX"&gt;https://www.nxp.com/support/developer-resources/software-development-tools/lpc-developer-resources-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc8xx:LPCOPEN-SOFTWARE-FOR-LPC8XX&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Nov 2018 02:25:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Self-Wakeup-Timer-WKT-on-LPC8XX-not-waking/m-p/798291#M32114</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2018-11-27T02:25:27Z</dc:date>
    </item>
  </channel>
</rss>

