<?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: SCTimer/PWM for Controlling a AC Fan Motor?? in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003535#M39417</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It looks like I've found the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was attempting to stop the counter &amp;amp; trigger an interrupt routine based on the same event. It appears that the counter was still running when the ISR attempted to clear it, hence it failed. Moving the call to the ISR into the following state solved the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However based on the new code the minimum delay I was able to achieve using the stop, clear &amp;amp; restart scheme of the counter was approx 1ms, unsuitable for my application. I cannot see a way to achieve this any quicker. Also occasionally the clearing of the counter was missed &amp;amp; a long delay occurred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can definitely see the usefulness of the SCT but unfortunately it seems inappropriate for my application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 22 Jan 2020 15:08:36 GMT</pubDate>
    <dc:creator>leo838</dc:creator>
    <dc:date>2020-01-22T15:08:36Z</dc:date>
    <item>
      <title>SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003523#M39405</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 have a project that controls an AC fan motor via a triac. It senses the zero crossing &amp;amp; then after a delay triggers the triac to supply power to the ac motor. The speed of the fan is determined by the delay (which changes depending on user input) in switching on the triac. It is &lt;EM&gt;similar&lt;/EM&gt; to attached the circuit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had been using interrupts &amp;amp; an LPC1768 for this project but am now switching to an '812. After investing it looks like the SCTimer/PWM is a suitable, but complicated in setup &amp;amp; control. Could anyone with experience tell me should I stick with an interrupt driven setup or is the SCTimer/PWM suitable? Once it's setup correctly it seems like it offloads alot of potential overhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many 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>Tue, 03 Dec 2019 20:29:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003523#M39405</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2019-12-03T20:29:31Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003524#M39406</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;1) Could anyone with experience tell me should I stick with an interrupt driven setup or is the SCTimer/PWM suitable?&lt;BR /&gt;-- According to your description, I consider the SCTimer is suited to the application, I've attached an application note which will guide to you how to utilize the SCTimer module.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2019 06:50:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003524#M39406</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2019-12-04T06:50:35Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003525#M39407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Many thanks, I'll take a look!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2019 14:49:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003525#M39407</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2019-12-04T14:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003526#M39408</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ive had a look at this but difficult to get my head around. What I'd like to do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Use an input pin to capture a rising edge from an optocoupler -&amp;gt; this starts a timer&lt;/LI&gt;&lt;LI&gt;When this timer expires it sets an output high&lt;/LI&gt;&lt;LI&gt;After a predefined time (eg. 5ms) another event sets the output low&lt;/LI&gt;&lt;LI&gt;the process continues..&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so far I have something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* SCT_PIN2 connect to P0_13 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWM_SetMovablePinSelect(SWM0, kSWM_CTIN_2, kSWM_PortPin_P0_13);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SCT_OUT3 connect to P0_12 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWM_SetMovablePinSelect(SWM0, kSWM_CTOUT_3, kSWM_PortPin_P0_12);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Schedule a capture event&amp;nbsp; to start timer on rising edge of input pin*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SCTIMER_CreateAndScheduleEvent(SCT0, kSCTIMER_InputRiseEvent, matchValueL, output_pin_here, kSCTIMER_Counter_L,&amp;amp;eventCounterL) == kStatus_Fail)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've obviously a long way to go... any pointers??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2019 16:34:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003526#M39408</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2019-12-06T16:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003527#M39409</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've hit a wall &amp;amp; could use some assistance. Using the code below I can successfully get an output to go high after the rising edge (state 0) &amp;amp; timer (state 1) have occurred. However the output never gets set low (state 2). If I remove the timer element (state 1) &amp;amp; edit the code the output correctly transitions to follow the input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone see what I'm doing wrong? Is it something to do with the timer triggering while the SCT is in other states? Do I need to stop or halt the timer in other states to stop it interfering?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for looking..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*
 * Copyright (c) 2016, Freescale Semiconductor, Inc.
 * Copyright 2016-2017 NXP
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Modified -- P0_13 now as input to counter to start it,
 *
 * State 0 -&amp;gt; rising edges detected on input -&amp;gt; counter L started -&amp;gt; advance to state 1
 * State 1 -&amp;gt; Counter L reaches limit value -&amp;gt; output set high -&amp;gt; advance to state 2
 * State 2- &amp;gt; Falling edge on input -&amp;gt; output set low &amp;amp; counter reset -&amp;gt; set state to 0
 */&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_debug_console.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"board.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_sctimer.h"&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"pin_mux.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Definitions
 ******************************************************************************/&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#define SCTIMER_CLK_FREQ CLOCK_GetFreq(kCLOCK_Irc)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define DEMO_FIRST_SCTIMER_OUT kSCTIMER_Out_2&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define DEMO_SECOND_SCTIMER_OUT kSCTIMER_Out_3&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Prototypes
 ******************************************************************************/&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Code
 ******************************************************************************/&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*!
 * @brief Main function
 */&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    sctimer_config_t sctimerInfo&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t riseEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Modified&lt;/SPAN&gt;
    uint32_t stateNumber&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Modified&lt;/SPAN&gt;
    uint32_t eventCounterL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t sctimerClock&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t matchValueL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Board pin, clock, debug console init */&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Enable clock of uart0. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Uart0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Ser DIV of uart0. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_SetClkDivider&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_DivUsartClk&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="token function"&gt;BOARD_InitPins&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;BOARD_BootClockIRC12M&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;BOARD_InitDebugConsole&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Enable clock of sct. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Sct&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    sctimerClock &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SCTIMER_CLK_FREQ&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Print a note to terminal */&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;//   PRINTF("\r\nSCTimer example to use it in 16-bit mode\r\n");&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;//   PRINTF("\r\nThe example shows both 16-bit counters running and toggling an output periodically  ");&lt;/SPAN&gt;

    &lt;SPAN class="token function"&gt;SCTIMER_GetDefaultConfig&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* Add judgment for change clock source*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#if defined(SCTIMER_NEED_CHANGE_CLOCK_SOURCE)&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;clockMode   &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; DEMO_CLOCK_MODE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;clockSelect &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; DEMO_CLOCK_SEL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#endif&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Switch to 16-bit mode */&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;enableCounterUnify &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; false&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Calculate prescaler and match value for Counter L for 10ms */&lt;/SPAN&gt;
    matchValueL            &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;MSEC_TO_COUNT&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;100U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; sctimerClock&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;prescale_l &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; matchValueL &lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;65536&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    matchValueL            &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; matchValueL &lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;prescale_l &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;// Switch off synchronization for inputs to speed up TODO: Necessary??&lt;/SPAN&gt;
  &lt;SPAN class="comment token"&gt;//  sctimerInfo.inputsync = 0x0U;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Initialize SCTimer module */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SCTIMER_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    stateNumber &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;SCTIMER_GetCurrentState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;// STATE 0 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// event 0&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a rising edge on input 1 in this state */&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_InputRiseEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Input_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
          &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;riseEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; stateNumber &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; riseEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// Goto next state&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_IncreaseState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// STATE 1 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// event 1&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;/* Schedule a single match event for Counter L */&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_MatchEventOnly&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; matchValueL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
            &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// Set output in this state&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_SetupOutputSetAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Out_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Reset Counter L when Counter L event occurs TODO: Should counter be reset?? */&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;//SCTIMER_SetupCounterLimitAction(SCT0, kSCTIMER_Counter_L, eventCounterL);&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Transition to next state when a rising edge detected on input 1 */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; stateNumber &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// Goto next state&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_IncreaseState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// STATE 2 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// event 2&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a falling edge on input 1 in this state */&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_InputFallEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Input_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
            &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// Clear output when event occurs in this state&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_SetupOutputClearAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Out_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// Transition to next state when event occurs in this state, i.e. loop back to initial state&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;///////////////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;


 &lt;SPAN class="comment token"&gt;/* Start the L counter */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SCTIMER_StartTimer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;

  &lt;SPAN class="token function"&gt;__asm&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"NOP"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* delay */&lt;/SPAN&gt;

 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp; pin_mux.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/***********************************************************************************************************************
 * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file
 * will be overwritten if the respective MCUXpresso Config Tools is used to update this file.
 **********************************************************************************************************************/&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* clang-format off */&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*
 * TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
!!GlobalInfo
product: Pins v6.0
processor: LPC812
package_id: LPC812M101JDH20
mcu_data: ksdk2_0
processor_version: 6.0.2
 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
 */&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* clang-format on */&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_common.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_swm.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"pin_mux.h"&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* FUNCTION ************************************************************************************************************
 *
 * Function Name : BOARD_InitBootPins
 * Description   : Calls initialization functions.
 *
 * END ****************************************************************************************************************/&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;BOARD_InitBootPins&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;BOARD_InitPins&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* clang-format off */&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*
 * TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
BOARD_InitPins:
- options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'}
- pin_list:
  - {pin_num: '18', peripheral: USART0, signal: TXD, pin_signal: PIO0_6/VDDCMP}
  - {pin_num: '12', peripheral: USART0, signal: RXD, pin_signal: PIO0_1/ACMP_I2/CLKIN}
  - {pin_num: '3', peripheral: SCT0, signal: 'IN, 1', pin_signal: PIO0_12, mode: pullDown}
  - {pin_num: '2', peripheral: SCT0, signal: 'OUT, 0', pin_signal: PIO0_13, mode: pullDown}
  - {pin_num: '20', peripheral: SCT0, signal: 'OUT, 1', pin_signal: PIO0_14, mode: pullDown}
  - {pin_num: '11', peripheral: SCT0, signal: 'OUT, 2', pin_signal: PIO0_15, mode: pullDown}
 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
 */&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* clang-format on */&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* FUNCTION ************************************************************************************************************
 *
 * Function Name : BOARD_InitPins
 * Description   : Configures pin routing and optionally pin electrical features.
 *
 * END ****************************************************************************************************************/&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* Function assigned for the Cortex-M0P */&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;BOARD_InitPins&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Enables clock for switch matrix.: Enable. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Swm&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;
                      &lt;SPAN class="comment token"&gt;/* Mask bits to zero which are setting */&lt;/SPAN&gt;
                      &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON_PIO_MODE_MASK&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

                     &lt;SPAN class="comment token"&gt;/* Selects function mode (on-chip pull-up/pull-down resistor control).: Pull-down. Pull-down
                      * resistor enabled. */&lt;/SPAN&gt;
                     &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;IOCON_PIO_MODE&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PIO0_12_MODE_PULL_DOWN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;
                      &lt;SPAN class="comment token"&gt;/* Mask bits to zero which are setting */&lt;/SPAN&gt;
                      &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON_PIO_MODE_MASK&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

                     &lt;SPAN class="comment token"&gt;/* Selects function mode (on-chip pull-up/pull-down resistor control).: Pull-down. Pull-down
                      * resistor enabled. */&lt;/SPAN&gt;
                     &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;IOCON_PIO_MODE&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PIO0_13_MODE_PULL_DOWN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;18&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;18&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;
                       &lt;SPAN class="comment token"&gt;/* Mask bits to zero which are setting */&lt;/SPAN&gt;
                       &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON_PIO_MODE_MASK&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

                      &lt;SPAN class="comment token"&gt;/* Selects function mode (on-chip pull-up/pull-down resistor control).: Pull-down. Pull-down
                       * resistor enabled. */&lt;/SPAN&gt;
                      &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;IOCON_PIO_MODE&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PIO0_14_MODE_PULL_DOWN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;10&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;10&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;
                       &lt;SPAN class="comment token"&gt;/* Mask bits to zero which are setting */&lt;/SPAN&gt;
                       &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IOCON_PIO_MODE_MASK&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

                      &lt;SPAN class="comment token"&gt;/* Selects function mode (on-chip pull-up/pull-down resistor control).: Pull-down. Pull-down
                       * resistor enabled. */&lt;/SPAN&gt;
                      &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;IOCON_PIO_MODE&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PIO0_15_MODE_PULL_DOWN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* USART0_TXD connect to P0_6 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_USART0_TXD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_6&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* USART0_RXD connect to P0_1 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_USART0_RXD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* SCT_PIN1 connect to P0_12 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_CTIN_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_12&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* SCT_OUT0 connect to P0_13 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_CTOUT_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_13&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* SCT_OUT1 connect to P0_14 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_CTOUT_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_14&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* SCT_OUT2 connect to P0_15 */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SWM_SetMovablePinSelect&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SWM0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_CTOUT_2&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSWM_PortPin_P0_15&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Disable clock for switch matrix. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_DisableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Swm&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/***********************************************************************************************************************
 * EOF
 **********************************************************************************************************************/&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Dec 2019 20:34:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003527#M39409</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2019-12-26T20:34:24Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003528#M39410</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;BR /&gt;After having a reviewing of the code, I've not found any of the wrongs in the codes. So I'd like to suggest you take advantage of step in step debug feature to observe the values of the set of SCTimer's registers to locate the issue.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Dec 2019 06:39:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003528#M39410</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2019-12-27T06:39:50Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003529#M39411</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In state 1 I’m using the L counter to achieve a delay. The other two states using input edge transitions as events. After using the L counter in state 1 should I stop the counter?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Dec 2019 21:25:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003529#M39411</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2019-12-28T21:25:50Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003530#M39412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;BR /&gt;According to the description of your scheme, I don't think it should stop the counter after using the L counter in state 1.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Dec 2019 02:34:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003530#M39412</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2019-12-30T02:34:57Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003531#M39413</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jeremy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply. I've spent hours looking at the code &amp;amp; trying to debug but without any success. I've verified that it increments to state 2 &amp;amp; gets stuck there, the event (number 3) in state 2 is never triggered. I've tried numerous ways to trigger &amp;amp; verified the inputs show a level change but no action occurs in this event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had thought I'd discovered the reason as a possible bug in the file fsl_sctimer.c. At line 516 the following code appears:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp; /* Enable the event in the current state */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;EVENT[s_currentEvent].STATE = (1U &amp;lt;&amp;lt; s_currentState);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Once s_currentState increases beyond 2 this fails to set anything (only bit 0 &amp;amp; 1 can be set) but this has no impact on my code. Perhaps I'm missing something.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can only suspect another possible bug or I've damaged my board (an Xpresso board) during debugging. I've attached the project, if you had a moment to see if it runs on a similar board I'd be much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Jan 2020 21:29:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003531#M39413</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-01T21:29:55Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003532#M39414</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well the penny finally dropped! The part I'm using (812) only has 2 states for it's SCT, others have more. Interestingly the manual mentions numerous times the max possible number of events but not states. The SDK software checks for exceedance in events but not states. I found the table below in the SCT cookbook, included for reference by others.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As an aside is it possible for the L &amp;amp; H counter to use the same input &amp;amp; output or must they be separate?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/101446iF14FF37D02A90257/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Jan 2020 22:09:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003532#M39414</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-02T22:09:05Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003533#M39415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for your reply and I'm glad to hear that you found out the issue.&lt;BR /&gt;Regarding another question, is it possible for the L &amp;amp; H counter to use the same input &amp;amp; output or must they be separated?&lt;BR /&gt;-- Yes, the L &amp;amp; H counter share the same clock source.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Jan 2020 02:35:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003533#M39415</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2020-01-03T02:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003534#M39416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jeremy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've&amp;nbsp; changed to a 824 &amp;amp; have got a working project running now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However I've found that I need to stop &amp;amp; restart the counter to achieve consistent timings. Using this technique however it looks like the minimum time I can get from starting the timer, it reaching a limit &amp;amp; triggering the event (setting an output high in state 1) is approx 5ms. I don't see anything in the manual mentioning delays between starting the counter &amp;amp; it running so its difficult to understand the delay. Ideally I'd like to achieve a minimum delay of 500uSec. I attach the project &amp;amp; the main file below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*
 * Copyright (c) 2016, Freescale Semiconductor, Inc.
 * Copyright 2016-2017 NXP
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Modified --
 * Input P0_24
 * Output P0_15
 *
 * State 0 -&amp;gt; rising edges detected on input -&amp;gt; counter L started -&amp;gt; advance to state 1
 * State 1 -&amp;gt; Counter L reaches limit value -&amp;gt; output set high -&amp;gt; advance to state 2
 * State 2- &amp;gt; Falling edge on input -&amp;gt; output set low &amp;amp; counter stopped -&amp;gt; set state to 0
 */&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_debug_console.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"board.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_sctimer.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_gpio.h"&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"pin_mux.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;"fsl_inputmux.h"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;&amp;lt;stdbool.h&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Definitions
 ******************************************************************************/&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#define SCTIMER_CLK_FREQ CLOCK_GetFreq(kCLOCK_Irc)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define DEMO_FIRST_SCTIMER_OUT kSCTIMER_Out_2&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define DEMO_SECOND_SCTIMER_OUT kSCTIMER_Out_4&lt;/SPAN&gt;

&lt;SPAN class="property macro token"&gt;#define INPUTSYNC0      (0U)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define INPUTSYNC1      (1U)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define INPUTSYNC2      (2U)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define INPUTSYNC3      (3U)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Prototypes
 ******************************************************************************/&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Code
 ******************************************************************************/&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/*!
 * @brief Main function
 */&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    sctimer_config_t sctimerInfo&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t riseEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; riseEvent2&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Modified&lt;/SPAN&gt;
    uint32_t stateNumber&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Modified&lt;/SPAN&gt;
    uint32_t sctimerClock&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    uint32_t matchValueL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Board pin, clock, debug console init */&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Enable clock of uart0. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Uart0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* Ser DIV of uart0. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_SetClkDivider&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_DivUsartClk&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* configure the input mux for the sct timer input0 from external pin*/&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;INPUTMUX_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;INPUTMUX&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;INPUTMUX_AttachSignal&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;INPUTMUX&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kINPUTMUX_SctPin0ToSct0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="token function"&gt;BOARD_InitPins&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;BOARD_BootClockIRC12M&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;BOARD_InitDebugConsole&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Enable clock of sct. */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Sct&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    sctimerClock &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SCTIMER_CLK_FREQ&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Print a note to terminal */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;PRINTF&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"\r\nAC Fan Controller using an LPC824 &amp;amp; SCT\r\n"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="token function"&gt;SCTIMER_GetDefaultConfig&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* Add judgment for change clock source*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#if defined(SCTIMER_NEED_CHANGE_CLOCK_SOURCE)&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;clockMode   &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; DEMO_CLOCK_MODE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;clockSelect &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; DEMO_CLOCK_SEL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#endif&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Switch to 16-bit mode */&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;enableCounterUnify &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; false&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Calculate prescaler and match value for Counter L for 100ms interval */&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;//matchValueL            = MSEC_TO_COUNT(7U, sctimerClock);&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;// Looking for 0.5ms or 500uSec resolution&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;// From 0 to approx 10ms&lt;/SPAN&gt;
    matchValueL            &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;USEC_TO_COUNT&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1000U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; sctimerClock&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;prescale_l &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; matchValueL &lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;65536&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    matchValueL            &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; matchValueL &lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;prescale_l &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;// Switch off synchronization for inputs to speed up TODO: Necessary??&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;//sctimerInfo.inputsync = (1 &amp;lt;&amp;lt; INPUTSYNC0);&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Initialize SCTimer module */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SCTIMER_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;sctimerInfo&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    stateNumber &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;SCTIMER_GetCurrentState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;// Interrupt callback for SCT //////////////////////////////////////////////////////////////&lt;/SPAN&gt;
    &lt;SPAN class="comment token"&gt;/* The interrupt callback function is used to update the PWM dutycycle */&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;SCTIMER_COUNTER_HANDLER&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        &lt;SPAN class="comment token"&gt;// Clear Counter_L so it starts from known value each time for event&lt;/SPAN&gt;
        SCT0&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CTRL &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;  &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; SCT_CTRL_CLRCTR_L_SHIFT&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
        &lt;SPAN class="comment token"&gt;//GPIO_PortToggle(GPIO, 0U, 1U &amp;lt;&amp;lt; 13U);&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;// STATE 0 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// event 0&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a rising edge on input 0 in this state */&lt;/SPAN&gt;
       &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_InputRiseEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Input_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                           &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;riseEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
           &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;// Set output in this state TODO DEBUG&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;//SCTIMER_SetupOutputToggleAction(SCT0, kSCTIMER_Out_1, riseEvent);&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Restart counter for (next) timer event&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupCounterStartAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;riseEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; stateNumber &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; riseEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Goto next state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_IncreaseState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// STATE 1 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// event 1&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;// Schedule a single match event for Counter L&lt;/SPAN&gt;
       &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_MatchEventOnly&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; matchValueL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                          &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
           &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Set output in this state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupOutputSetAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Out_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Transition to next state when counter expires&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; stateNumber &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Stop counter to enable it to be cleared in interrupt handler&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SCTIMER_SetupCounterStopAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Enable interrupt for this event&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SCTIMER_EnableInterrupts&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;/* Receive notification when event is triggered */&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetCallback&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; SCTIMER_COUNTER_HANDLER&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventCounterL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Goto next state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_IncreaseState&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// STATE 2 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// event 2&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a falling edge on input 0 in this state */&lt;/SPAN&gt;
       &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_InputFallEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Input_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                           &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
           &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
       &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Clear output in this state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupOutputClearAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Out_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Transition to next state when event occurs in this state, i.e. loop back to initial state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupNextStateAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; stateNumber&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fallEvent&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// STATE 3 /////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;// Use this state when full power is required&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;// SCT will be stuck in this state until software intervention&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// event 3&lt;/SPAN&gt;
       &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a rising edge on input 0 in this state */&lt;/SPAN&gt;
       &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SCTIMER_CreateAndScheduleEvent&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_InputRiseEvent&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Input_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                                  &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;riseEvent2&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; kStatus_Fail&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// Set output in this state&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;SCTIMER_SetupOutputSetAction&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Out_0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; riseEvent2&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;// No automatic transition to next event..&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;///////////////////////////////////////////////////////////////////////////////////////////&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;/* Enable at the NVIC */&lt;/SPAN&gt;
       &lt;SPAN class="token function"&gt;EnableIRQ&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0_IRQn&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

       &lt;SPAN class="comment token"&gt;/* Start the L counter */&lt;/SPAN&gt;
    &lt;SPAN class="token function"&gt;SCTIMER_StartTimer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SCT0&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kSCTIMER_Counter_L&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Force the counter to be placed into memory. */&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;volatile&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;static&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; i &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

    &lt;SPAN class="comment token"&gt;/* Enter an infinite loop, just incrementing a counter. */&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        i&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      char strdat[19] = "               ";&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      sprintf(strdat,"\n\r\n\r\n\r%i",SCT0-&amp;gt;SCTCAP[riseTimeReg]);&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      char strdat2[15] = "               ";&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      sprintf(strdat2,"\n\r%i",SCT0-&amp;gt;SCTCAP[fallTimeReg]);&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      USART_WriteBlocking(USART0, strdat,19);&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//      USART_WriteBlocking(USART0, strdat2,15);&lt;/SPAN&gt;

        &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i &lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;5000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="token function"&gt;PRINTF&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"."&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        __asm &lt;SPAN class="keyword token"&gt;volatile&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"nop"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jan 2020 11:18:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003534#M39416</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-21T11:18:17Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003535#M39417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It looks like I've found the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was attempting to stop the counter &amp;amp; trigger an interrupt routine based on the same event. It appears that the counter was still running when the ISR attempted to clear it, hence it failed. Moving the call to the ISR into the following state solved the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However based on the new code the minimum delay I was able to achieve using the stop, clear &amp;amp; restart scheme of the counter was approx 1ms, unsuitable for my application. I cannot see a way to achieve this any quicker. Also occasionally the clearing of the counter was missed &amp;amp; a long delay occurred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can definitely see the usefulness of the SCT but unfortunately it seems inappropriate for my application.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Jan 2020 15:08:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003535#M39417</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-22T15:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003536#M39418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Sorry for reply late.&lt;BR /&gt;Regarding the statement: 'it looks like the minimum time I can get from starting the timer, it reaching a limit &amp;amp; triggering the event (setting an output high in state 1) is approx 5ms.', I think you misunderstand the limit event. When without other event configurations, counting up to all ones or counting down to zero is always equivalent to a limit event occurring. So the 'delay' between the starting the timer and reaching a limit &amp;amp; triggering the event seems like a 'timeout' period actually.&lt;BR /&gt;I was wondering if you can share the new code and introduce the testing process, as I'm not very clear with your current question.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Jan 2020 03:11:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003536#M39418</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2020-01-26T03:11:18Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003537#M39419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jeremy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, your correct, the reason I was getting the 5ms delay was the the counter reaching all ones. My post previous to this outlines the reason the counter was not cleared.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've attached the last version of my project for reference. The quickest I could achieve the stop, clear &amp;amp; restart scheme of the counter was approx 1ms, if you can see any quicker way I be grateful if you could share!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jan 2020 15:02:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003537#M39419</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-28T15:02:21Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003538#M39420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;Thanks for your clarification.&lt;BR /&gt;Maybe you can try to create another event to detect the voltage level of kSCTIMER_Out_0 became 0 when the event 2 arises, after detecting it, triggering the counter resume.&lt;/P&gt;&lt;P&gt;In my opinion, it should be quicker than the interrupt handler function.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2020 11:35:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003538#M39420</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2020-01-29T11:35:42Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer/PWM for Controlling a AC Fan Motor??</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003539#M39421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the suggestion but I need accurate timing from an input going low &amp;amp; so I need to start the counter from zero from that event.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2020 16:21:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-PWM-for-Controlling-a-AC-Fan-Motor/m-p/1003539#M39421</guid>
      <dc:creator>leo838</dc:creator>
      <dc:date>2020-01-29T16:21:08Z</dc:date>
    </item>
  </channel>
</rss>

