<?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>LPC MicrocontrollersのトピックRe: SCTimer Falling Edge Event Not Consistently Firing</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739396#M29832</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using the high counter for the edge detection counter and the low (currently unused) for PWM generation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sctimer_event_callback_t sctimer_callback_table = { SCT_Detection_Callback };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PulseDetection_Init(void)&lt;BR /&gt;{ &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;sctimer_config_t sctimerInfo;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_GetDefaultConfig(&amp;amp;sctimerInfo);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;sctimerInfo.enableCounterUnify = FALSE;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_Init(SCT0, &amp;amp;sctimerInfo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;INPUTMUX-&amp;gt;SCT0_INMUX[2] = 0x2; //GPIO0_2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t risingEdge_Event;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t fallingEdge_Event; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//Create an event for rising edge //kSCTIMER_InputLowEvent kSCTIMER_InputFallEvent&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_CreateAndScheduleEvent(SCT0,kSCTIMER_InputRiseEvent,0,2,kSCTIMER_Counter_H,&amp;amp;risingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_CreateAndScheduleEvent(SCT0,kSCTIMER_InputFallEvent,0,2,kSCTIMER_Counter_H,&amp;amp;fallingEdge_Event); &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//Start counter when Rising Edge occurs&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupCounterStartAction(SCT0,kSCTIMER_Counter_H,risingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupNextStateAction(SCT0,1,risingEdge_Event); //not working as expected&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//HALT counter when falling edge occurs&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupCounterHaltAction(SCT0,kSCTIMER_Counter_H,fallingEdge_Event);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Set callback for interrupt&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetCallback(SCT0, sctimer_callback_table, fallingEdge_Event); &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_EnableInterrupts(SCT0,1&amp;lt;&amp;lt;fallingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;NVIC_SetPriority(SCT0_IRQn, IRQ_PRIORITY_CTIMER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[risingEdge_Event].CTRL |= 0x0000C010; //set state to 1 after this event occurs and HEVENT to 1 &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[fallingEdge_Event].CTRL |= 0x00004010; //set state to 0 after this event occurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVIC_EnableIRQ(SCT0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//SCTIMER_StartTimer(SCT0,kSCTIMER_Counter_H);&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[risingEdge_Event].STATE = 0x00000001; //enable rising egde in state 0&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[fallingEdge_Event].STATE = 0x00000002; //enable falling edge in state 1&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t CTRL_Enable_Event = SCT0-&amp;gt;CTRL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event &amp;amp;= (~(SCT_CTRL_HALT_H_MASK) ); //clear halt H bit &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event |= SCT_CTRL_STOP_H_MASK; //set stop H bit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL = CTRL_Enable_Event; //Write both changes at once&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;19);//clear counter&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SCT_Detection_Callback(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;widths[count++] = (SCT0-&amp;gt;COUNT) &amp;gt;&amp;gt; 16; //add width value to array&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;19);//clear counter&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t CTRL_Enable_Event = SCT0-&amp;gt;CTRL;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event &amp;amp;= (~(SCT_CTRL_HALT_H_MASK) ); //clear halt H bit &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event |= SCT_CTRL_STOP_H_MASK; //set stop H bit&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL = CTRL_Enable_Event; //Write both changes at once&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 22 Jan 2018 15:39:57 GMT</pubDate>
    <dc:creator>use</dc:creator>
    <dc:date>2018-01-22T15:39:57Z</dc:date>
    <item>
      <title>SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739394#M29830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am currently attempting to use the SCTimer on the LPC54606 to measure pulse widths. The state registers are configured so that when a rising edge occurs, the state moves to 1. When in state 1, a falling edge event is allowed. This event lowers the state back to 0 and triggers an interrupt where I grab the counter data and reset it. This seems to work about 80% of the time but it is occasionally missing the falling edge and so the state remains in state 1. Even with slow pulses (0.5 ms on, 0.5 ms off) it is missing edges and the event doesn't fire. Has anybody else experienced this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jan 2018 20:12:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739394#M29830</guid>
      <dc:creator>use</dc:creator>
      <dc:date>2018-01-19T20:12:00Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739395#M29831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;SPAN style="font-family: 'Microsoft YaHei', STXihei; background-color: #ffffff;"&gt;Thank you for your interest in NXP Semiconductor products and&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;SPAN style="font-family: 'Microsoft YaHei', STXihei; background-color: #ffffff;"&gt;the opportunity to serve you.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;SPAN style="font-family: 'Microsoft YaHei', STXihei; background-color: #ffffff;"&gt;I was wondering if you can share the demo code which can replicate the phenomenon.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;TIC&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;/DIV&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Jan 2018 02:04:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739395#M29831</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2018-01-22T02:04:31Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739396#M29832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using the high counter for the edge detection counter and the low (currently unused) for PWM generation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sctimer_event_callback_t sctimer_callback_table = { SCT_Detection_Callback };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PulseDetection_Init(void)&lt;BR /&gt;{ &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;sctimer_config_t sctimerInfo;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_GetDefaultConfig(&amp;amp;sctimerInfo);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;sctimerInfo.enableCounterUnify = FALSE;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_Init(SCT0, &amp;amp;sctimerInfo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;INPUTMUX-&amp;gt;SCT0_INMUX[2] = 0x2; //GPIO0_2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t risingEdge_Event;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t fallingEdge_Event; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//Create an event for rising edge //kSCTIMER_InputLowEvent kSCTIMER_InputFallEvent&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_CreateAndScheduleEvent(SCT0,kSCTIMER_InputRiseEvent,0,2,kSCTIMER_Counter_H,&amp;amp;risingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_CreateAndScheduleEvent(SCT0,kSCTIMER_InputFallEvent,0,2,kSCTIMER_Counter_H,&amp;amp;fallingEdge_Event); &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//Start counter when Rising Edge occurs&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupCounterStartAction(SCT0,kSCTIMER_Counter_H,risingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupNextStateAction(SCT0,1,risingEdge_Event); //not working as expected&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//HALT counter when falling edge occurs&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetupCounterHaltAction(SCT0,kSCTIMER_Counter_H,fallingEdge_Event);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Set callback for interrupt&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_SetCallback(SCT0, sctimer_callback_table, fallingEdge_Event); &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCTIMER_EnableInterrupts(SCT0,1&amp;lt;&amp;lt;fallingEdge_Event);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;NVIC_SetPriority(SCT0_IRQn, IRQ_PRIORITY_CTIMER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[risingEdge_Event].CTRL |= 0x0000C010; //set state to 1 after this event occurs and HEVENT to 1 &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[fallingEdge_Event].CTRL |= 0x00004010; //set state to 0 after this event occurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVIC_EnableIRQ(SCT0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//SCTIMER_StartTimer(SCT0,kSCTIMER_Counter_H);&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[risingEdge_Event].STATE = 0x00000001; //enable rising egde in state 0&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;EVENT[fallingEdge_Event].STATE = 0x00000002; //enable falling edge in state 1&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t CTRL_Enable_Event = SCT0-&amp;gt;CTRL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event &amp;amp;= (~(SCT_CTRL_HALT_H_MASK) ); //clear halt H bit &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event |= SCT_CTRL_STOP_H_MASK; //set stop H bit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL = CTRL_Enable_Event; //Write both changes at once&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;19);//clear counter&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SCT_Detection_Callback(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;widths[count++] = (SCT0-&amp;gt;COUNT) &amp;gt;&amp;gt; 16; //add width value to array&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;19);//clear counter&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t CTRL_Enable_Event = SCT0-&amp;gt;CTRL;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event &amp;amp;= (~(SCT_CTRL_HALT_H_MASK) ); //clear halt H bit &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;CTRL_Enable_Event |= SCT_CTRL_STOP_H_MASK; //set stop H bit&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCT0-&amp;gt;CTRL = CTRL_Enable_Event; //Write both changes at once&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Jan 2018 15:39:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739396#M29832</guid>
      <dc:creator>use</dc:creator>
      <dc:date>2018-01-22T15:39:57Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739397#M29833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="311613" data-username="use" href="https://community.nxp.com/people/use" rel="nofollow noopener noreferrer" target="_blank"&gt;use,&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;In my honest, your coding style will make some troubles for you in future and it takes me some time to figure it out.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;And I've simplified your code which is illustrated below, please giving it a try.&lt;/SPAN&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
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * o Redistributions of source code must retain the above copyright notice, this list
 *&amp;nbsp;&amp;nbsp; of conditions and the following disclaimer.
 *
 * o Redistributions in binary form must reproduce the above copyright notice, this
 *&amp;nbsp;&amp;nbsp; list of conditions and the following disclaimer in the documentation and/or
 *&amp;nbsp;&amp;nbsp; other materials provided with the distribution.
 *
 * o Neither the name of the copyright holder nor the names of its
 *&amp;nbsp;&amp;nbsp; contributors may be used to endorse or promote products derived from this
 *&amp;nbsp;&amp;nbsp; software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */&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="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 BUS_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk)&lt;/SPAN&gt;


&lt;SPAN class="comment token"&gt;/*******************************************************************************
 * Prototypes
 ******************************************************************************/&lt;/SPAN&gt;
sctimer_event_callback_t sctimer_callback_table&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;SCT_Detection_Callback&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


uint32_t widths&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;SCT_Detection_Callback&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;

&amp;nbsp; widths &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SCT0&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;COUNT&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp; 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;&lt;SPAN class="number token"&gt;19&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&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp; uint32_t CTRL_Enable_Event &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SCT0&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CTRL&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; CTRL_Enable_Event &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&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;SCT_CTRL_HALT_H_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;//clear halt H bit&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; CTRL_Enable_Event &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SCT_CTRL_STOP_H_MASK&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//set stop H bit&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; SCT0&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CTRL &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; CTRL_Enable_Event&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//Write both changes at once&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sctimer_config_t sctimerInfo&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t stateNumber&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t eventNumberInput&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventNumberInputPlus&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t sctimerClock&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Board pin, clock, debug console init */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Gpio0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;CLOCK_EnableClock&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kCLOCK_Gpio3&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* attach 12 MHz clock to FLEXCOMM0 (debug console) */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;CLOCK_AttachClk&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_DEBUG_UART_CLK_ATTACH&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* configure the input mux for the sct timer input1 from external pin*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;1U&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kINPUTMUX_SctGpi6ToSct0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;BOARD_BootClockFROHF48M&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;

&amp;nbsp;&amp;nbsp;&amp;nbsp; sctimerClock &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; BUS_CLK_FREQ&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Print a note to terminal */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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\nSCTimer example\r\n"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Default configuration operates the counter in 32-bit mode */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Initialize SCTimer module */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;

&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a rising edge on input 1 in this state */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;0&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;eventNumberInput&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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; eventNumberInput&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Go to next state; State 1 */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Schedule an event to look for a rising edge on input 1 in this state */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;0&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;eventNumberInputPlus&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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; eventNumberInputPlus&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;//HALT counter when falling edge occurs&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;SCTIMER_SetupCounterHaltAction&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;eventNumberInputPlus&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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_callback_table&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; eventNumberInputPlus&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;eventNumberInputPlus&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;NVIC_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;


&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Start the timer, use counter L as we are operating counter in 32-bit mode */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;


&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;/CODE&gt;&lt;/PRE&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Feb 2018 06:05:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739397#M29833</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2018-02-05T06:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739398#M29834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe I have seen similar behavior. My issue has been reported here:&amp;nbsp;&lt;A href="https://community.nxp.com/message/1062204"&gt;https://community.nxp.com/message/1062204&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2018 18:28:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/739398#M29834</guid>
      <dc:creator>timcarney</dc:creator>
      <dc:date>2018-09-27T18:28:27Z</dc:date>
    </item>
    <item>
      <title>Re: SCTimer Falling Edge Event Not Consistently Firing</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/1416305#M47942</link>
      <description>&lt;P&gt;Dear Sir,&lt;/P&gt;&lt;P&gt;Above method trying is not work.&lt;/P&gt;&lt;P&gt;i got assert failed following error.&lt;/P&gt;&lt;P&gt;ASSERT ERROR " C:\Users\XXXX\Documents\MCUXpressoIDE_11.5.0_7232\workspace\lpcxpresso54628_ctimer_pwm_example\drivers/fsl_sctimer.h:1058 : 0U == (base-&amp;gt;CONFIG &amp;amp; SCT_CONFIG_UNIFY_MASK)&lt;/P&gt;&lt;P&gt;My code :&lt;/P&gt;&lt;P&gt;#include "fsl_debug_console.h"&lt;BR /&gt;#include "pin_mux.h"&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#include "fsl_ctimer.h"&lt;BR /&gt;#include "fsl_sctimer.h"&lt;BR /&gt;#include "fsl_inputmux.h"&lt;BR /&gt;#include &amp;lt;stdbool.h&amp;gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define CTIMER CTIMER1 /* Timer 1 */&lt;BR /&gt;#define CTIMER_MAT_OUT kCTIMER_Match_1 /* Match output 1 */&lt;BR /&gt;#define CTIMER_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk)&lt;BR /&gt;#ifndef CTIMER_MAT_PWM_PERIOD_CHANNEL&lt;BR /&gt;#define CTIMER_MAT_PWM_PERIOD_CHANNEL kCTIMER_Match_3&lt;BR /&gt;#endif&lt;BR /&gt;#define BUS_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void SCT_Detection_Callback(void);&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Variables&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;volatile uint32_t g_pwmPeriod = 0U;&lt;BR /&gt;volatile uint32_t g_pulsePeriod = 0U;&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;status_t CTIMER_GetPwmPeriodValue(uint32_t pwmFreqHz, uint8_t dutyCyclePercent, uint32_t timerClock_Hz)&lt;BR /&gt;{&lt;BR /&gt;/* Calculate PWM period match value */&lt;BR /&gt;g_pwmPeriod = (timerClock_Hz / pwmFreqHz) - 1U;&lt;/P&gt;&lt;P&gt;/* Calculate pulse width match value */&lt;BR /&gt;g_pulsePeriod = (g_pwmPeriod + 1U) * (100 - dutyCyclePercent) / 100;&lt;/P&gt;&lt;P&gt;return kStatus_Success;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;sctimer_event_callback_t sctimer_callback_table={SCT_Detection_Callback};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;uint32_t widths;&lt;/P&gt;&lt;P&gt;void SCT_Detection_Callback(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;widths = SCT0-&amp;gt;COUNT;&lt;/P&gt;&lt;P&gt;SCT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;19);//clear counter&lt;/P&gt;&lt;P&gt;uint32_t CTRL_Enable_Event = SCT0-&amp;gt;CTRL;&lt;BR /&gt;CTRL_Enable_Event &amp;amp;= (~(SCT_CTRL_HALT_H_MASK) ); //clear halt H bit&lt;BR /&gt;CTRL_Enable_Event |= SCT_CTRL_STOP_H_MASK; //set stop H bit&lt;BR /&gt;SCT0-&amp;gt;CTRL = CTRL_Enable_Event; //Write both changes at once&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;* @brief Main function&lt;BR /&gt;*/&lt;BR /&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;ctimer_config_t config;&lt;BR /&gt;uint32_t srcClock_Hz;&lt;BR /&gt;uint32_t timerClock;&lt;/P&gt;&lt;P&gt;sctimer_config_t sctimerInfo;&lt;/P&gt;&lt;P&gt;uint32_t stateNumber;&lt;BR /&gt;uint32_t eventNumberInput, eventNumberInputPlus;&lt;BR /&gt;uint32_t sctimerClock;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/* Init hardware*/&lt;BR /&gt;/* attach 12 MHz clock to FLEXCOMM0 (debug console) */&lt;BR /&gt;CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);&lt;/P&gt;&lt;P&gt;/* Enable the asynchronous bridge */&lt;BR /&gt;SYSCON-&amp;gt;ASYNCAPBCTRL = 1;&lt;/P&gt;&lt;P&gt;/* Use 12 MHz clock for some of the Ctimers */&lt;BR /&gt;CLOCK_AttachClk(kFRO12M_to_ASYNC_APB);&lt;/P&gt;&lt;P&gt;BOARD_InitBootPins();&lt;BR /&gt;BOARD_InitBootClocks();&lt;BR /&gt;BOARD_InitDebugConsole();&lt;/P&gt;&lt;P&gt;/* CTimer0 counter uses the AHB clock, some CTimer1 modules use the Aysnc clock */&lt;BR /&gt;srcClock_Hz = CTIMER_CLK_FREQ;&lt;/P&gt;&lt;P&gt;PRINTF("CTimer example to generate a PWM signal\r\n");&lt;/P&gt;&lt;P&gt;CTIMER_GetDefaultConfig(&amp;amp;config);&lt;BR /&gt;timerClock = srcClock_Hz / (config.prescale + 1);&lt;/P&gt;&lt;P&gt;CTIMER_Init(CTIMER, &amp;amp;config);&lt;/P&gt;&lt;P&gt;/* Get the PWM period match value and pulse width match value of 20Khz PWM signal with 20% dutycycle */&lt;BR /&gt;CTIMER_GetPwmPeriodValue(20000, 20, timerClock);&lt;BR /&gt;CTIMER_SetupPwmPeriod(CTIMER, CTIMER_MAT_PWM_PERIOD_CHANNEL, CTIMER_MAT_OUT, g_pwmPeriod, g_pulsePeriod, false);&lt;BR /&gt;CTIMER_StartTimer(CTIMER);&lt;/P&gt;&lt;P&gt;#if 1&lt;BR /&gt;sctimerClock = BUS_CLK_FREQ;&lt;BR /&gt;sctimerInfo.enableCounterUnify = 0;&lt;BR /&gt;sctimerInfo.inputsync = 1&amp;lt;&amp;lt;1;&lt;BR /&gt;SCTIMER_GetDefaultConfig(&amp;amp;sctimerInfo);&lt;/P&gt;&lt;P&gt;/* Initialize SCTimer module */&lt;BR /&gt;SCTIMER_Init(SCT0, &amp;amp;sctimerInfo);&lt;/P&gt;&lt;P&gt;stateNumber = SCTIMER_GetCurrentState(SCT0);&lt;/P&gt;&lt;P&gt;/* Schedule an event to look for a rising edge on input 1 in this state */&lt;BR /&gt;if (SCTIMER_CreateAndScheduleEvent(SCT0, kSCTIMER_InputRiseEvent, 0, kSCTIMER_Input_1, kSCTIMER_Counter_L,&lt;BR /&gt;&amp;amp;eventNumberInput) == kStatus_Fail)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;BR /&gt;SCTIMER_SetupNextStateAction(SCT0, stateNumber + 1, eventNumberInput);&lt;/P&gt;&lt;P&gt;/* Go to next state; State 1 */&lt;BR /&gt;SCTIMER_IncreaseState(SCT0);&lt;/P&gt;&lt;P&gt;/* Schedule an event to look for a rising edge on input 1 in this state */&lt;BR /&gt;if (SCTIMER_CreateAndScheduleEvent(SCT0, kSCTIMER_InputFallEvent, 0, kSCTIMER_Input_1, kSCTIMER_Counter_L,&lt;BR /&gt;&amp;amp;eventNumberInputPlus) == kStatus_Fail)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Transition to next state when a rising edge is detected on input 1 */&lt;BR /&gt;SCTIMER_SetupNextStateAction(SCT0, stateNumber - 2, eventNumberInputPlus);&lt;/P&gt;&lt;P&gt;//HALT counter when falling edge occurs&lt;BR /&gt;SCTIMER_SetupCounterHaltAction(SCT0,kSCTIMER_Counter_L,eventNumberInputPlus);&lt;/P&gt;&lt;P&gt;SCTIMER_SetCallback(SCT0, sctimer_callback_table, eventNumberInputPlus);&lt;/P&gt;&lt;P&gt;SCTIMER_EnableInterrupts(SCT0,1&amp;lt;&amp;lt;eventNumberInputPlus);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;NVIC_EnableIRQ(SCT0_IRQn);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/* Start the timer, use counter L as we are operating counter in 32-bit mode */&lt;BR /&gt;SCTIMER_StartTimer(SCT0, kSCTIMER_Counter_L);&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 20 Feb 2022 07:04:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCTimer-Falling-Edge-Event-Not-Consistently-Firing/m-p/1416305#M47942</guid>
      <dc:creator>TPN_CHN</dc:creator>
      <dc:date>2022-02-20T07:04:46Z</dc:date>
    </item>
  </channel>
</rss>

