<?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>LPCXpresso IDEのトピックSCT counter debug</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/SCT-counter-debug/m-p/529071#M1293</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kitahei88 on Fri Sep 25 19:02:15 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to debug SCT counter with LPCXpressoIDE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It may be FAQ or beginner question.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use LPCXpresso1549 RevB board.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to know " when MATCH register reload from MATCHRELOAD reg?"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course , I read user manual and it says,&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Each match reload register MATCHRELOAD sets a reload value that is loaded into the match register when the counter reaches&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a limit condition or the value 0."&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I want to know "Is it true?"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So I write code like this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "LPC15xx.h"

void SCT0_Init(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL1 |= EN1_SCT0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable the SCT0 clock
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;CONFIG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (1 &amp;lt;&amp;lt; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp; | (1 &amp;lt;&amp;lt; 17);&amp;nbsp;&amp;nbsp;&amp;nbsp; // unified 32-bit timer, auto limit

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Timer Limit set to 10msec
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCH[0].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/100)-1;&amp;nbsp; // match 0 @ 100 Hz 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCHREL[0].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/100)-1;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check MATCH and MATCHRELOAD reg work
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCH[1].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/10000)-1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCHREL[1].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/1000)-1;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVENT[0].STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xFFFFFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 happens in all states
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVENT[0].CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (1 &amp;lt;&amp;lt; 12);&amp;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; // match 0 condition only
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVEN&amp;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; = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 generates an interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(SCT0_IRQn);&amp;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; // enable SCT0 interrupt

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;CTRL_U &amp;amp;= ~(1 &amp;lt;&amp;lt; 2);&amp;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; // clear HALT status
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I debug with LPCXpressoIDE, CMSIS-DAP,LPC-Link2.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I check the value MATCH[0].U ,MATCHREL[0].U,MATCH[1].U,MATCHREL[1].U with Expression.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;After SCT halt condition cleared, SCT works very quick , and debugging next line, the timer already reached LIMIT (in many times).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression shows MATCH[1].U reg already reloaded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I want to make break at certain counter value , How can I do that? or it's impossible? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Or any other debug method like SWO trace can do that?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:06:33 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:06:33Z</dc:date>
    <item>
      <title>SCT counter debug</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/SCT-counter-debug/m-p/529071#M1293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kitahei88 on Fri Sep 25 19:02:15 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to debug SCT counter with LPCXpressoIDE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It may be FAQ or beginner question.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use LPCXpresso1549 RevB board.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to know " when MATCH register reload from MATCHRELOAD reg?"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course , I read user manual and it says,&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Each match reload register MATCHRELOAD sets a reload value that is loaded into the match register when the counter reaches&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a limit condition or the value 0."&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I want to know "Is it true?"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So I write code like this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "LPC15xx.h"

void SCT0_Init(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL1 |= EN1_SCT0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable the SCT0 clock
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;CONFIG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (1 &amp;lt;&amp;lt; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp; | (1 &amp;lt;&amp;lt; 17);&amp;nbsp;&amp;nbsp;&amp;nbsp; // unified 32-bit timer, auto limit

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Timer Limit set to 10msec
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCH[0].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/100)-1;&amp;nbsp; // match 0 @ 100 Hz 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCHREL[0].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/100)-1;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check MATCH and MATCHRELOAD reg work
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCH[1].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/10000)-1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;MATCHREL[1].U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (SystemCoreClock/1000)-1;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVENT[0].STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xFFFFFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 happens in all states
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVENT[0].CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (1 &amp;lt;&amp;lt; 12);&amp;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; // match 0 condition only
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;EVEN&amp;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; = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // event 0 generates an interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(SCT0_IRQn);&amp;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; // enable SCT0 interrupt

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SCT0-&amp;gt;CTRL_U &amp;amp;= ~(1 &amp;lt;&amp;lt; 2);&amp;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; // clear HALT status
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I debug with LPCXpressoIDE, CMSIS-DAP,LPC-Link2.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I check the value MATCH[0].U ,MATCHREL[0].U,MATCH[1].U,MATCHREL[1].U with Expression.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;After SCT halt condition cleared, SCT works very quick , and debugging next line, the timer already reached LIMIT (in many times).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression shows MATCH[1].U reg already reloaded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I want to make break at certain counter value , How can I do that? or it's impossible? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Or any other debug method like SWO trace can do that?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:06:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/SCT-counter-debug/m-p/529071#M1293</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:06:33Z</dc:date>
    </item>
  </channel>
</rss>

