<?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のトピックSCT on LPC824</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCT-on-LPC824/m-p/574818#M19110</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sanders7284 on Tue Oct 13 07:41:42 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, I am having some trouble geting a capture compare to run using the SCT,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the problem my be linked to the pin assignment but have included the full init of the SCT below,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Event 0 the 400uS match and reload aspect is working perfectly it is event 1 and the capture funtion that are not, no IRQ is generated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//TIMER_INIT -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER_INIT()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //setup ----------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SCT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SYSCTL_PeriphReset(RESET_SCT); // Initialize the SCT clock and reset the SCT &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_Config(SCT_CONFIG_32BIT_COUNTER | SCT_CONFIG_CLKMODE_BUSCLK); // Configure the SCT counter as a unified (32 bit) counter using the bus clock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;REGMODE_L = 0x0002; //0 is match, 1 is capcom&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 0 to be 400uS sample timer for bit measuring ---------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_SetMatchCount(SCT_MATCH_0, SystemCoreClock / TICKRATE_HZ); // Set the match count for match register 0 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_SetMatchReload(SCT_MATCH_0, SystemCoreClock / TICKRATE_HZ); // Set the match reload value for match reload register 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[0].CTRL = (1 &amp;lt;&amp;lt; 12); // Event 0 only happens on a match condition&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[0].STATE = 0xFFFFFFFF; // Event 0 happens in all states&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;LIMIT_L = 0x0001; /// Event 0 is used as the counter limit (each bit relates to an event bit 0 for event 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 1 to be capture compare for falling edge -------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[1].STATE = 0xFFFFFFFF; // Event 1 only happens in state 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;CAPCTRL[1].U = 0x00000001;&amp;nbsp; //Event 1 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[1].CTRL = (2 &amp;lt;&amp;lt; 10) | (2 &amp;lt;&amp;lt; 12); //set IOCOND to falling edge capture &amp;amp; set COMBMODE to IO condition only &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM); // Enable SWM clock before altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SWM_MovablePinAssign(SWM_SCT_IN0_I, 23);&amp;nbsp;&amp;nbsp;&amp;nbsp; //assigne p0.23 to link to IN0 for capcom.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM); // Disable SWM clock after altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //go timer -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_EnableEventInt(SCT_EVT_0); // Enable flag to request an interrupt for Event 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_EnableEventInt(SCT_EVT_1); // Enable flag to request an interrupt for Event 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_EnableIRQ(SCT_IRQn); // Enable the interrupt for the SCT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_SetPriority(SCT_IRQn, 3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_ClearControl(SCT_CTRL_HALT_L); // Start the SCT counter by clearing Halt_L in the SCT control register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers Sanders&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 20:14:47 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T20:14:47Z</dc:date>
    <item>
      <title>SCT on LPC824</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCT-on-LPC824/m-p/574818#M19110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sanders7284 on Tue Oct 13 07:41:42 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, I am having some trouble geting a capture compare to run using the SCT,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the problem my be linked to the pin assignment but have included the full init of the SCT below,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Event 0 the 400uS match and reload aspect is working perfectly it is event 1 and the capture funtion that are not, no IRQ is generated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//TIMER_INIT -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER_INIT()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //setup ----------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SCT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SYSCTL_PeriphReset(RESET_SCT); // Initialize the SCT clock and reset the SCT &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_Config(SCT_CONFIG_32BIT_COUNTER | SCT_CONFIG_CLKMODE_BUSCLK); // Configure the SCT counter as a unified (32 bit) counter using the bus clock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;REGMODE_L = 0x0002; //0 is match, 1 is capcom&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 0 to be 400uS sample timer for bit measuring ---------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_SetMatchCount(SCT_MATCH_0, SystemCoreClock / TICKRATE_HZ); // Set the match count for match register 0 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_SetMatchReload(SCT_MATCH_0, SystemCoreClock / TICKRATE_HZ); // Set the match reload value for match reload register 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[0].CTRL = (1 &amp;lt;&amp;lt; 12); // Event 0 only happens on a match condition&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[0].STATE = 0xFFFFFFFF; // Event 0 happens in all states&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;LIMIT_L = 0x0001; /// Event 0 is used as the counter limit (each bit relates to an event bit 0 for event 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 1 to be capture compare for falling edge -------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[1].STATE = 0xFFFFFFFF; // Event 1 only happens in state 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;CAPCTRL[1].U = 0x00000001;&amp;nbsp; //Event 1 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EVENT[1].CTRL = (2 &amp;lt;&amp;lt; 10) | (2 &amp;lt;&amp;lt; 12); //set IOCOND to falling edge capture &amp;amp; set COMBMODE to IO condition only &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM); // Enable SWM clock before altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SWM_MovablePinAssign(SWM_SCT_IN0_I, 23);&amp;nbsp;&amp;nbsp;&amp;nbsp; //assigne p0.23 to link to IN0 for capcom.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM); // Disable SWM clock after altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //go timer -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_EnableEventInt(SCT_EVT_0); // Enable flag to request an interrupt for Event 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_EnableEventInt(SCT_EVT_1); // Enable flag to request an interrupt for Event 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_EnableIRQ(SCT_IRQn); // Enable the interrupt for the SCT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_SetPriority(SCT_IRQn, 3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_ClearControl(SCT_CTRL_HALT_L); // Start the SCT counter by clearing Halt_L in the SCT control register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers Sanders&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:14:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCT-on-LPC824/m-p/574818#M19110</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T20:14:47Z</dc:date>
    </item>
    <item>
      <title>Re: SCT on LPC824</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SCT-on-LPC824/m-p/574819#M19111</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sanders7284 on Fri Oct 16 02:56:01 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have figured out that the INMUX also needs setting up on the LPC824 so the capture compare is now running but it seems to be missing some edges.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have included the code as it stands and some scope shots of the problem, it is not periodic so I don't think it is a timer overflow type error but am stuggling to put my finger on what it could be.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//TIMER_INIT -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER_INIT()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //setup ----------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_Init(LPC_SCT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SYSCTL_PeriphReset(RESET_SCT); // Initialize the SCT clock and reset the SCT &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_Config(LPC_SCT, (SCT_CONFIG_32BIT_COUNTER | SCT_CONFIG_CLKMODE_BUSCLK)); // Configure the SCT counter as a unified (32 bit) counter using the bus clock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;REGMODE_L = 0x0002; //0 is match, 1 is capcom&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;STATE_U = 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 0 to be 400uS sample timer for bit measuring ---------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //Chip_SCT_SetMatchCount(LPC_SCT, SCT_MATCH_0, (SystemCoreClock / Limit_1S)); // Set the match count for match register 0 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //Chip_SCT_SetMatchReload(LPC_SCT, SCT_MATCH_0, SystemCoreClock / Limit_1S); // Set the match reload value for match reload register 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //LPC_SCT-&amp;gt;EV[0].CTRL = (1 &amp;lt;&amp;lt; 12); // Event 0 only happens on a match condition&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //LPC_SCT-&amp;gt;EV[0].STATE = 0x02; // Event 0 happens in state 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //LPC_SCT-&amp;gt;LIMIT_L = 0x0001; /// Event 0 used as the counter limit (each bit relates to an event bit 0 for event 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //set 1 to be capture compare for falling edge -------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EV[1].STATE = 0x01; // Event 1 only happens in state 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;CAPCTRL[1].U = 0x00000001;&amp;nbsp; //Event 1 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SCT-&amp;gt;EV[1].CTRL = (2 &amp;lt;&amp;lt; 10) | (2 &amp;lt;&amp;lt; 12); //set IOCOND to falling edge capture &amp;amp; set COMBMODE to IO condition only &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SWM_Init(); // Enable SWM clock before altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SWM_MovablePinAssign(SWM_SCT_IN0_I, 23);&amp;nbsp;&amp;nbsp;&amp;nbsp; //assigne p0.23 to link to IN0 for capcom.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_INMUX-&amp;gt;SCT0_INMUX[0] = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SWM_Deinit(); // Disable SWM clock after altering SWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //go timer -------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //Chip_SCT_EnableEventInt(LPC_SCT, SCT_EVT_0); // Enable flag to request an interrupt for Event 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_EnableEventInt(LPC_SCT, SCT_EVT_1); // Enable flag to request an interrupt for Event 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_EnableIRQ(SCT_IRQn); // Enable the interrupt for the SCT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; NVIC_SetPriority(SCT_IRQn, 3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Chip_SCT_ClearControl(LPC_SCT, SCT_CTRL_HALT_L); // Start the SCT counter by clearing Halt_L in the SCT control register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:14:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SCT-on-LPC824/m-p/574819#M19111</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T20:14:48Z</dc:date>
    </item>
  </channel>
</rss>

