<?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: SCI TX Interrupt Problem in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203326#M16802</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi.&lt;BR /&gt;First of all, if you want to send the first 10 bytes in your array, your code starts on element 1 instead of element 0 of array.&lt;BR /&gt;Use Transmition complete like event generator of interrupt doesn't take advantage of SCI module, because we could use the TDRE flag in order to queue new data on SCI module.&lt;BR /&gt;So you could use two posibles flags as interruption generators&lt;BR /&gt;1.Transmission Complete flag&lt;BR /&gt;2. Transmit Data register empty flag&lt;/P&gt;&lt;P&gt;Example to first option:&lt;BR /&gt;SCIC2_TCIE = 1; //Call this to start transmission&lt;/P&gt;&lt;P&gt;__interrupt void isrVscitx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(SCIS1_TC)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCID = sendBuffer[txCount];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(++txCount&amp;gt;=10)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TCIE = 0;&amp;nbsp;&amp;nbsp; //Disable interrupt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txCount=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //txON=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TX hardware enable pin low&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&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;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Example to second option:&lt;/P&gt;&lt;P&gt;SCIC2_TIE = 1; //Call this to start transmission&lt;/P&gt;&lt;P&gt;__interrupt void isrVscitx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(SCIS1_TDRE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCID = sendBuffer[txCount];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(++txCount&amp;gt;=10)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TIE = 0;&amp;nbsp;&amp;nbsp; //Disable interrupt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txCount=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txON=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TX hardware enable pin low&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&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;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;The above examples assumes that you starts correctly the SCI module.&lt;/P&gt;&lt;P&gt;Greetings @420&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 30 Jul 2009 03:30:30 GMT</pubDate>
    <dc:creator>erooll</dc:creator>
    <dc:date>2009-07-30T03:30:30Z</dc:date>
    <item>
      <title>SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203319#M16795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everybody;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm in trouble with tx interrupt.&lt;/P&gt;&lt;P&gt;although i wrote codes below it's not working&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
__interrupt void isrVscitx(void){&amp;nbsp; if(SCIS1_TC){// wait to Transmission Complete flag&amp;nbsp;&amp;nbsp; txCount++;&amp;nbsp;&amp;nbsp; if(txCount&amp;gt;10){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //to transmit 10 bytes&amp;nbsp;&amp;nbsp; txCount=0;&amp;nbsp; txON=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TX hardware enable pin low&amp;nbsp; SCIC2_TCIE=0;&amp;nbsp; //TX interrupt disable } else{&amp;nbsp; SCID = sendBuffer[rxCount]; }&amp;nbsp; }}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;The problem is:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Even TXInterrupt is off it branches to interrupt again and again.&lt;/P&gt;&lt;P&gt;&amp;nbsp; If i use debugger step by step code enters txCount control block but if i set a breakpotint to&lt;/P&gt;&lt;PRE&gt;txCount=0;
&lt;/PRE&gt;&lt;P&gt;line it never enters to breakpoint.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's so meaningles.&lt;/P&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 13:28:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203319#M16795</guid>
      <dc:creator>longliveboy</dc:creator>
      <dc:date>2009-07-29T13:28:24Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203320#M16796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello longliveboy,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You have not told us what flag you have setup to trigger the tx interrupt!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm guessing you have set it up for TDRE. Now when the interrupt is triggered TC is not set yet so nothing is done and you have failed to properly clear the TDRE flag.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perhaps a review of the datasheet is in order for you....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perhaps you could also indicate what you are trying to do, because it is not clear from your supplied code.&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by peg on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-07-29&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;04:53 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 13:51:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203320#M16796</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2009-07-29T13:51:16Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203321#M16797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I presume that the first character is sent from outside the ISR.&amp;nbsp; Then each time the ISR is entered the TC flag will always be clear since a new character is sent each time.&amp;nbsp; I also notice that your are using the index value &lt;FONT face="courier new,courier"&gt;rxcount&lt;/FONT&gt;, rather than the perhaps expected &lt;FONT face="courier new,courier"&gt;txcount&lt;/FONT&gt;, and that you do not increment this index value. So it is possibly the same character sent each time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you require to limit each transmission to ten characters, you will need to keep track of this within the &lt;FONT face="courier new,courier"&gt;else&lt;/FONT&gt; part of your &lt;FONT face="courier new,courier"&gt;if&lt;/FONT&gt; statement, and then use the TC flag to determine only when the interrupt should be disabled.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 14:07:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203321#M16797</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2009-07-29T14:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203322#M16798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Peg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried both Transmit Interrupt(TDRE flag) and Transmit Complete Interrupt(TC flag) separately but result is same.&lt;/P&gt;&lt;P&gt;First tx interrupt is triggered in main function by "SCIC_TCIE=1;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I read datasheet carefully but i dont know what is the point that i miss?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to implement MODBUS protocol&lt;/P&gt;&lt;P&gt;i recieve some requests from server and start to control frame compability for modbus. If all frame is ok i start to transmit requested datas but tx interrupt never stops.&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by longliveboy on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-07-29&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;08:19 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 14:08:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203322#M16798</guid>
      <dc:creator>longliveboy</dc:creator>
      <dc:date>2009-07-29T14:08:17Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203323#M16799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bigmac;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;rxCount is just a misspelling. In the project it is txCount.&lt;/P&gt;&lt;P&gt;Also i tried every kind of controls to limit transmit count by 10 but code never falls to coltrol block in run time&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 14:16:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203323#M16799</guid>
      <dc:creator>longliveboy</dc:creator>
      <dc:date>2009-07-29T14:16:51Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203324#M16800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following untested code snippet is what I was alluding to in my previous post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;volatile byte sendBuffer[11];&lt;BR /&gt;volatile byte txCount;&lt;BR /&gt;&lt;BR /&gt;void SCI_send_string( void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; txON = 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; // Enable Tx hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp; txCount = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!SCIS1_TDRE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SCID = sendBuffer[txCount++]; // Send first character&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SCIC2_TIE = 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; // Enable TDRE interrupts&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;__interrupt void isrVscitx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (SCIS1_TC) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Test for transmission complete &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TCIE = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Disable TC interrupts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txON = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Disable Tx hardware&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (txCount &amp;lt; 10)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; SCID = sendBuffer[txCount++];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TIE = 0;&amp;nbsp;&amp;nbsp; // Disable TDRE interrupts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TCIE = 1;&amp;nbsp; // Enable TC interrupts&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 15:00:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203324#M16800</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2009-07-29T15:00:18Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203325#M16801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi again,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try setting the interrupt to trigger on TDRE and remove the TC test from within the ISR. Put in a read of SCIS1 at begining of ISR to allow the flag to clear. That should get you started.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jul 2009 15:02:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203325#M16801</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2009-07-29T15:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203326#M16802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi.&lt;BR /&gt;First of all, if you want to send the first 10 bytes in your array, your code starts on element 1 instead of element 0 of array.&lt;BR /&gt;Use Transmition complete like event generator of interrupt doesn't take advantage of SCI module, because we could use the TDRE flag in order to queue new data on SCI module.&lt;BR /&gt;So you could use two posibles flags as interruption generators&lt;BR /&gt;1.Transmission Complete flag&lt;BR /&gt;2. Transmit Data register empty flag&lt;/P&gt;&lt;P&gt;Example to first option:&lt;BR /&gt;SCIC2_TCIE = 1; //Call this to start transmission&lt;/P&gt;&lt;P&gt;__interrupt void isrVscitx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(SCIS1_TC)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCID = sendBuffer[txCount];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(++txCount&amp;gt;=10)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TCIE = 0;&amp;nbsp;&amp;nbsp; //Disable interrupt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txCount=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //txON=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TX hardware enable pin low&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&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;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Example to second option:&lt;/P&gt;&lt;P&gt;SCIC2_TIE = 1; //Call this to start transmission&lt;/P&gt;&lt;P&gt;__interrupt void isrVscitx(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(SCIS1_TDRE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCID = sendBuffer[txCount];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(++txCount&amp;gt;=10)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIC2_TIE = 0;&amp;nbsp;&amp;nbsp; //Disable interrupt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txCount=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txON=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TX hardware enable pin low&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&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;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;The above examples assumes that you starts correctly the SCI module.&lt;/P&gt;&lt;P&gt;Greetings @420&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2009 03:30:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203326#M16802</guid>
      <dc:creator>erooll</dc:creator>
      <dc:date>2009-07-30T03:30:30Z</dc:date>
    </item>
    <item>
      <title>Re: SCI TX Interrupt Problem</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203327#M16803</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The first example here also suffers from the fact that it needs to be "kick started" by loading the SCID from outside the interrupt, otherwise TC will never be set to generate the interrupt.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IMHO, it is misleading to satisfy the flag resetting requirements by doing an "if" test of the generating flag inside the ISR. To a reader it looks like the if needs to be there and looks like you could tack an "else" condition on the end (which you can't). dummy= SCIS1 even uncommented, will cause the ignorant reader to find out why, rather than lull them into a false reason.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2009 05:57:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SCI-TX-Interrupt-Problem/m-p/203327#M16803</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2009-07-30T05:57:39Z</dc:date>
    </item>
  </channel>
</rss>

