<?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 periph_SCT_match_toggle example has bogus code - AN11538 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/periph-SCT-match-toggle-example-has-bogus-code-AN11538/m-p/573599#M18854</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by larryvc on Fri Dec 05 12:41:57 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The periph_SCT_match_toggle example in nxp_lpcxpresso_824_SCT_PWM_examples in AN11538&amp;nbsp; Rev. 3 — 3 November 2014 has unneeded, and incorrect, code.&amp;nbsp; Was this added to see if anybody would notice? &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&amp;nbsp; &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;/*****************************************************************************
*&amp;nbsp; LPC82x Match Toggle for the LPC824 LPCXpresso board
*
*&amp;nbsp; 1. Use SCT timer to generate a 50 msec clock output @ CTOUT_0
*&amp;nbsp; 2. CTOUT_0 is linked to P0_12 (toggles every 50 msec)
*****************************************************************************/
#include "board.h"

#define match_value (10000)

extern void sct_fsm_init (void);

void sct_fsm_init (void)
{

Chip_SCT_Init(LPC_SCT);&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable the SCT clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */

Chip_SCT_Config(LPC_SCT,&amp;nbsp; SCT_CONFIG_AUTOLIMIT_L ); /* SPLIT */


Chip_SCT_SetControl(LPC_SCT, SCT_CTRL_PRE_L(119));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* set prescaler, SCT clock = 1 MHz&amp;nbsp;&amp;nbsp; */



Chip_SCT_SetMatchCount(LPC_SCT, SCT_MATCH_0, match_value);// match 0 @ 10 Hz = 100 msec
Chip_SCT_SetMatchReload(LPC_SCT, SCT_MATCH_0, match_value);

/* OUTPUT registers */

Chip_SCT_SetOutput(LPC_SCT, SCT_OUTPUT_0, SCT_EVT_0 );&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; // event 0 will set SCT_OUT_0
Chip_SCT_ClearOutput(LPC_SCT, SCT_OUTPUT_0, SCT_EVT_0);&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 will clear SCT_OUT_0


/* Conflict resolution register */
Chip_SCT_SetConflictResolution(LPC_SCT, 0, SCT_RES_TOGGLE_OUTPUT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // output 0 toggles on conflict


/* EVENT registers */

Chip_SCT_EventState(LPC_SCT, SCT_EVENT_0, ENABLE_STATE0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 only happens in state 0
Chip_SCT_EventControl(LPC_SCT, SCT_EVENT_0, (CHIP_SCT_EVENTCTRL_T)&amp;nbsp; ( SCT_EVECTRL_MATCH0|&amp;nbsp;&amp;nbsp; // MATCHSEL[3:0]&amp;nbsp;&amp;nbsp; = related to match 0
&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;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;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;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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCT_COMBMODE_MATCH));&amp;nbsp; // COMBMODE[13:12] = match condition only



Chip_SCT_ClearControl(LPC_SCT , SCT_CTRL_HALT_L);

}


int main(void)
{
/* Generic Initialization */

SystemCoreClockUpdate();
Board_Init();

Chip_Clock_SetSysClockDiv(5);

Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);// enable clock for IOCON

Chip_SWM_Init();

Chip_SWM_MovablePinAssign(SWM_SCT_OUT0_O, 12);

// Bogus code for this example, SCT1 is not used and P2_17 does not exist
// modefunc value passed for P0_12 is bogus, assigns values to reserved bits
// Great example of copy/paste without verification
//Chip_IOCON_PinMuxSet(LPC_IOCON, 12 , 0x00000081);// P2_17 is SCT1_OUT1

sct_fsm_init();&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the SCT using the code generated by Red State */


&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 20:16:11 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T20:16:11Z</dc:date>
    <item>
      <title>periph_SCT_match_toggle example has bogus code - AN11538</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/periph-SCT-match-toggle-example-has-bogus-code-AN11538/m-p/573599#M18854</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by larryvc on Fri Dec 05 12:41:57 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The periph_SCT_match_toggle example in nxp_lpcxpresso_824_SCT_PWM_examples in AN11538&amp;nbsp; Rev. 3 — 3 November 2014 has unneeded, and incorrect, code.&amp;nbsp; Was this added to see if anybody would notice? &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&amp;nbsp; &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;/*****************************************************************************
*&amp;nbsp; LPC82x Match Toggle for the LPC824 LPCXpresso board
*
*&amp;nbsp; 1. Use SCT timer to generate a 50 msec clock output @ CTOUT_0
*&amp;nbsp; 2. CTOUT_0 is linked to P0_12 (toggles every 50 msec)
*****************************************************************************/
#include "board.h"

#define match_value (10000)

extern void sct_fsm_init (void);

void sct_fsm_init (void)
{

Chip_SCT_Init(LPC_SCT);&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable the SCT clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */

Chip_SCT_Config(LPC_SCT,&amp;nbsp; SCT_CONFIG_AUTOLIMIT_L ); /* SPLIT */


Chip_SCT_SetControl(LPC_SCT, SCT_CTRL_PRE_L(119));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* set prescaler, SCT clock = 1 MHz&amp;nbsp;&amp;nbsp; */



Chip_SCT_SetMatchCount(LPC_SCT, SCT_MATCH_0, match_value);// match 0 @ 10 Hz = 100 msec
Chip_SCT_SetMatchReload(LPC_SCT, SCT_MATCH_0, match_value);

/* OUTPUT registers */

Chip_SCT_SetOutput(LPC_SCT, SCT_OUTPUT_0, SCT_EVT_0 );&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; // event 0 will set SCT_OUT_0
Chip_SCT_ClearOutput(LPC_SCT, SCT_OUTPUT_0, SCT_EVT_0);&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 will clear SCT_OUT_0


/* Conflict resolution register */
Chip_SCT_SetConflictResolution(LPC_SCT, 0, SCT_RES_TOGGLE_OUTPUT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // output 0 toggles on conflict


/* EVENT registers */

Chip_SCT_EventState(LPC_SCT, SCT_EVENT_0, ENABLE_STATE0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 only happens in state 0
Chip_SCT_EventControl(LPC_SCT, SCT_EVENT_0, (CHIP_SCT_EVENTCTRL_T)&amp;nbsp; ( SCT_EVECTRL_MATCH0|&amp;nbsp;&amp;nbsp; // MATCHSEL[3:0]&amp;nbsp;&amp;nbsp; = related to match 0
&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;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;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;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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCT_COMBMODE_MATCH));&amp;nbsp; // COMBMODE[13:12] = match condition only



Chip_SCT_ClearControl(LPC_SCT , SCT_CTRL_HALT_L);

}


int main(void)
{
/* Generic Initialization */

SystemCoreClockUpdate();
Board_Init();

Chip_Clock_SetSysClockDiv(5);

Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);// enable clock for IOCON

Chip_SWM_Init();

Chip_SWM_MovablePinAssign(SWM_SCT_OUT0_O, 12);

// Bogus code for this example, SCT1 is not used and P2_17 does not exist
// modefunc value passed for P0_12 is bogus, assigns values to reserved bits
// Great example of copy/paste without verification
//Chip_IOCON_PinMuxSet(LPC_IOCON, 12 , 0x00000081);// P2_17 is SCT1_OUT1

sct_fsm_init();&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the SCT using the code generated by Red State */


&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:16:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/periph-SCT-match-toggle-example-has-bogus-code-AN11538/m-p/573599#M18854</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T20:16:11Z</dc:date>
    </item>
    <item>
      <title>Re: periph_SCT_match_toggle example has bogus code - AN11538</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/periph-SCT-match-toggle-example-has-bogus-code-AN11538/m-p/573600#M18855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mc on Fri Dec 05 18:05:00 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Larryvc,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for pointing out. We will correct it. Yes, LPC824 does not have port2.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:16:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/periph-SCT-match-toggle-example-has-bogus-code-AN11538/m-p/573600#M18855</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T20:16:12Z</dc:date>
    </item>
  </channel>
</rss>

