<?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: MC9S08AW16 SCI RDRF can not be cleared in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136378#M4317</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;You also have to be careful how you read the SCI1SR register especially&amp;nbsp;if you don't make use of the data that you read, as in your code snippet.&amp;nbsp;&amp;nbsp; Some compilers especially with optimization turned on will see that data0 is not used after you read SCI1SR.&amp;nbsp; They will optimize out this step and your compiled code will only contain the read of the SCI1 data register.&amp;nbsp;&amp;nbsp;Sometimes making data0 volatile will help.&amp;nbsp; You could also test the value of SCI1SR to see if RDRF is actually set and that the error flags are not set.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Nov 2006 04:09:56 GMT</pubDate>
    <dc:creator>Sampson</dc:creator>
    <dc:date>2006-11-14T04:09:56Z</dc:date>
    <item>
      <title>MC9S08AW16 SCI RDRF can not be cleared</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136374#M4313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000; font-size: 2;"&gt;Hi,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000; font-size: 2;"&gt;I am using MC9S08AW16 for a project, and CW5.1 IDE. I create my project under MC9S08AW32 and change PRM for RAM 0x100 to 0x46F, ROM start from 0xC000.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000; font-size: 2;"&gt;Since I need a SCI communication, I set SCI1 as 1200-9-E-1 format, initialize code as below.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp;&lt;SPAN style="color: #3300CC;"&gt;SCI1BDH=change_2.iuch[0];&lt;BR /&gt;&amp;nbsp;SCI1BDL=change_2.iuch[1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&amp;nbsp;/* SCI1C1: LOOPS=0,SCISWAI=0,Rsrc=0,M=1,WAKE=0,ILT=0,PE=1,PT=0 */&lt;BR /&gt;&amp;nbsp;SCI1C1=0B00010010;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&amp;nbsp;/* SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=0,RE=1,RWU=0,SBK=0 */&lt;BR /&gt;&amp;nbsp;SCI1C2=0B00100100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&amp;nbsp;/* SCI1C3: R8=0,T8=0,TXDIR=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCI1C3 = 0x0f;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;SCI1S2=0;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000; font-size: 2;"&gt;When I send a single charactor from PC COM to my AW16, the SCI Rx interrupts runs well, and I receive correct data, but the flag RDRF flag can not be cleared. I wrote my ISR as below:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #3300CC; font-size: 2;"&gt;interrupt void SCI1_rx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;uchar i,data0;&lt;BR /&gt;&amp;nbsp;data0=SCI1S1;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;data0=SCI1D;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN style="color: #3300CC; font-size: 2;"&gt;&lt;A&gt;\\\&lt;/A&gt; more codes followed....&lt;/SPAN&gt;&lt;SPAN style="color: #3300CC; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style=": ; color: #3300CC; font-size: 2;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2;"&gt;Most strange is, when I am string at address 0x3C(SCI1S1 register) in the memory window of Hi-Wave debugger, RDRF can be cleared, but if this address is hidden in the window, it can not be cleared.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #3300CC; font-size: 2;"&gt;Is this a CW bug or do I have anything incorrect in my project? Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #3300CC; font-size: 2;"&gt;jerry&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Nov 2006 10:29:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136374#M4313</guid>
      <dc:creator>JerryBJ</dc:creator>
      <dc:date>2006-11-13T10:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S08AW16 SCI RDRF can not be cleared</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136375#M4314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I believe you can't clear your flag because you haven't finished reading your data [which is now 9 bits.] The 9th bit is in the SCI1C3 register. You may need to read it first, I don't remember...&lt;BR /&gt;&lt;BR /&gt;Al&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Nov 2006 11:10:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136375#M4314</guid>
      <dc:creator>Geezer</dc:creator>
      <dc:date>2006-11-13T11:10:57Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S08AW16 SCI RDRF can not be cleared</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136376#M4315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Jerry,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Refer to the EB642 document attached.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;You&amp;nbsp;have also observed the spurious clearing of the RDRF flag when the debugger operation reads the registers associated with the flag clearing sequence.&amp;nbsp; To prevent this the debugger should not display these register values.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Nov 2006 13:52:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136376#M4315</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-11-13T13:52:58Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S08AW16 SCI RDRF can not be cleared</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136377#M4316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thank both of you very much.&lt;/DIV&gt;&lt;DIV&gt;I read R8 before SCI1D, and now it works well. &lt;IMG alt=":smileyvery-happy:" class="emoticon emoticon-smileyvery-happy" id="smileyvery-happy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-very-happy.gif" title="Smiley Very Happy" /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Nov 2006 15:51:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136377#M4316</guid>
      <dc:creator>JerryBJ</dc:creator>
      <dc:date>2006-11-13T15:51:14Z</dc:date>
    </item>
    <item>
      <title>Re: MC9S08AW16 SCI RDRF can not be cleared</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136378#M4317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;You also have to be careful how you read the SCI1SR register especially&amp;nbsp;if you don't make use of the data that you read, as in your code snippet.&amp;nbsp;&amp;nbsp; Some compilers especially with optimization turned on will see that data0 is not used after you read SCI1SR.&amp;nbsp; They will optimize out this step and your compiled code will only contain the read of the SCI1 data register.&amp;nbsp;&amp;nbsp;Sometimes making data0 volatile will help.&amp;nbsp; You could also test the value of SCI1SR to see if RDRF is actually set and that the error flags are not set.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Nov 2006 04:09:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9S08AW16-SCI-RDRF-can-not-be-cleared/m-p/136378#M4317</guid>
      <dc:creator>Sampson</dc:creator>
      <dc:date>2006-11-14T04:09:56Z</dc:date>
    </item>
  </channel>
</rss>

