UART Transmission TX inside ISR

"[email protected] [msp430]" <[email protected]> 29 Sep 2016 08:27:02 -0700
Newsgroups gmane.comp.hardware.texas-instruments.msp430.discuss
Message-ID <[email protected]>
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="UTF-8"

SSdtIGN1cmlvdXMgaWYgc29tZW9uZSBjYW4gZXhwbGFpbiB0byBtZSB0aGUgKG5lZ2F0aXZlPykg
ZWZmZWN0cyBvZiB0cnlpbmcgdG8gc2VuZCBVQVJUIGJ5dGVzIGRpcmVjdGx5IGZyb20gbXkgSW50
ZXJydXB0IFNlcnZpY2UgUm91dGluZS4gIElzIHRoaXMgYmFkIGRlc2lnbiBwcmFjdGljZSBiZWNh
dXNlIG5vdyBteSBJU1Igd2lsbCB0YWtlIGxvbmdlciB0byBleGVjdXRlPyAgU2hvdWxkIEkgYmUg
dXNpbmcgRE1BIHRvIFRYIGRhdGEgaGVyZT8gIFRoYW5rcyBpbiBhZHZhbmNlLg0KIA0KDQogc3Rh
dGljIHZvaWQgUGFyc2VSeERhdGEoY29uc3QgdWludDhfdCByeF9ieXRlKQ0KIHsNCiAgICAgLy8g
T25seSBBbGxvdyBBU0NJSSBDaGFyYWN0ZXJzIHRvIGJlIGxvYWRlZCBpbnRvIGJ1ZmZlcg0KICAg
ICAvLyBUaGlzIHdpbGwgZHJvcCBDUi9MRiBldGMsIHdvbid0IGdvIGluIGdSeEJ1ZmZlcg0KICAg
ICBpZiAocnhfYnl0ZSA+PSAweDIwKQ0KICAgICAgICAgZ1J4QnVmZmVyW2dXckluZGV4KytdID0g
dG9sb3dlcihyeF9ieXRlKTsgLy8gc3R1ZmYgbG93ZXJjYXNlIG9ubHkgaW50byBidWZmZXINCiAN
Cg0KICAgICBVYXJ0U2VuZENoYXIocnhfYnl0ZSk7DQogDQoNCiAgICAgaWYgKHJ4X2J5dGUgPT0g
MHgwQSkgLy8gRW5kIG9mIENvbW1hbmQNCiAgICAgew0KICAgICAgICAgZ1J4QnVmZmVyW2dXcklu
ZGV4XSA9IDA7ICAvLyBBZGQgbnVsbCBwb2ludGVyIHRvIGVuZA0KICAgICAgICAgZ0ZsYWdDbWRS
ZWFkeSA9IHRydWU7ICAvLyBTZXQgR2xvYmFsIEZsYWcgUmVhZHkgQ29tbWFuZA0KICAgICAgICAg
Z1dySW5kZXggPSAwOw0KICAgICB9DQogfQ0KIA0KDQogDQoNCiAvLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKg0KIC8vDQogLy9UaGlzIGlzIHRoZSBVU0NJX0ExIGludGVycnVwdCB2ZWN0b3Igc2Vydmlj
ZSByb3V0aW5lLg0KIC8vDQogLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAjaWYgZGVmaW5lZChf
X1RJX0NPTVBJTEVSX1ZFUlNJT05fXykgfHwgZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKQ0K
ICNwcmFnbWEgdmVjdG9yPVVTQ0lfQTFfVkVDVE9SDQogX19pbnRlcnJ1cHQNCiAjZWxpZiBkZWZp
bmVkKF9fR05VQ19fKQ0KIF9fYXR0cmlidXRlX18oKGludGVycnVwdChVU0NJX0ExX1ZFQ1RPUikp
KQ0KICNlbmRpZg0KIHZvaWQgRVVTQ0lfQTFfSVNSKHZvaWQpDQogew0KICAgICB1aW50OF90IFJY
RGF0YTsNCiAgICAgc3dpdGNoKF9fZXZlbl9pbl9yYW5nZShVQ0ExSVYsVVNDSV9VQVJUX1VDVFhD
UFRJRkcpKQ0KICAgICB7DQogICAgIGNhc2UgVVNDSV9OT05FOiBicmVhazsNCiAgICAgY2FzZSBV
U0NJX1VBUlRfVUNSWElGRzoNCiAgICAgICAgIFJYRGF0YSA9IEVVU0NJX0FfVUFSVF9yZWNlaXZl
RGF0YShFVVNDSV9BMV9CQVNFKTsNCiAgICAgICAgIFBhcnNlUnhEYXRhKFJYRGF0YSk7DQogICAg
ICAgICBicmVhazsNCiAgICAgY2FzZSBVU0NJX1VBUlRfVUNUWElGRzogYnJlYWs7DQogICAgIGNh
c2UgVVNDSV9VQVJUX1VDU1RUSUZHOiBicmVhazsNCiAgICAgY2FzZSBVU0NJX1VBUlRfVUNUWENQ
VElGRzogYnJlYWs7DQogICAgIH0NCiB9DQogDQoNCg==


--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit





<head>

<style type="text/css">
<!--

/* start of attachment style */
       .ygrp-photo-title{
         clear: both;
         font-size: smaller;
         height: 15px;
         overflow: hidden;
         text-align: center;
         width: 75px;
       }
       div.ygrp-photo{
         background-position: center;
         background-repeat: no-repeat;
         background-color: white;
         border: 1px solid black;
         height: 62px;
         width: 62px;
       }

       div.photo-title 
         a,
         div.photo-title a:active,
         div.photo-title a:hover,
         div.photo-title a:visited {
           text-decoration: none; 
       }

       div.attach-table div.attach-row {
         clear: both;
       }

       div.attach-table div.attach-row div {
         float: left;
         /* margin: 2px;*/
       }

       p {
         clear: both;
         padding: 15px 0 3px 0;
	 overflow: hidden;
       }

       div.ygrp-file {
         width: 30px;
         valign: middle;
       }
       div.attach-table div.attach-row div div a {
         text-decoration: none;
       }

       div.attach-table div.attach-row div div span {
         font-weight: normal;
       }

       div.ygrp-file-title {
         font-weight: bold;
       }
 /* end of attachment style */
        -->
        </style>
        </head>
<html>
<head>
<style type="text/css">
<!--
#ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
-->
</style>
</head>
<body>



<!-- |**|begin egp html banner|**| -->

<br><br>

<!-- |**|end egp html banner|**| -->


<p>I&#39;m curious if someone can explain to me the (negative?) effects of trying to send UART bytes directly from my Interrupt Service Routine. &nbsp;Is this bad design practice because now my ISR will take longer to execute? &nbsp;Should I be using DMA to TX data here? &nbsp;Thanks in advance.</p><p><br></p><p>static void ParseRxData(const uint8_t rx_byte)</p><p>{</p><p>&nbsp; &nbsp; // Only Allow ASCII Characters to be loaded into buffer</p><p>&nbsp; &nbsp; // This will drop CR/LF etc, won&#39;t go in gRxBuffer</p><p>&nbsp; &nbsp; if (rx_byte &gt;= 0x20)</p><p>&nbsp; &nbsp; &nbsp; &nbsp; gRxBuffer[gWrIndex++] = tolower(rx_byte); // stuff lowercase only into buffer</p><p><br></p><p>&nbsp; &nbsp; UartSendChar(rx_byte);</p><p><br></p><p>&nbsp; &nbsp; if (rx_byte == 0x0A) // End of Command<
 /p><p>&nbsp; &nbsp; {</p><p>&nbsp; &nbsp; &nbsp; &nbsp; gRxBuffer[gWrIndex] = 0; &nbsp;// Add null pointer to end</p><p>&nbsp; &nbsp; &nbsp; &nbsp; gFlagCmdReady = true; &nbsp;// Set Global Flag Ready Command</p><p>&nbsp; &nbsp; &nbsp; &nbsp; gWrIndex = 0;</p><p>&nbsp; &nbsp; }</p><p>}</p><p><br></p><p><br></p><p>//******************************************************************************</p><p>//</p><p>//This is the USCI_A1 interrupt vector service routine.</p><p>//</p><p>//******************************************************************************</p><p>#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)</p><p>#pragma vector=USCI_A1_VECTOR</p><p>__interrupt</p><p>#elif defined(__GNUC__)</p><p>__attribute__((interrupt(USCI_A1_VECTOR)))</p><p>#endif</p><p>void EUS
 CI_A1_ISR(void)</p><p>{</p><p>&nbsp; &nbsp; uint8_t RXData;</p><p>&nbsp; &nbsp; switch(__even_in_range(UCA1IV,USCI_UART_UCTXCPTIFG))</p><p>&nbsp; &nbsp; {</p><p>&nbsp; &nbsp; case USCI_NONE: break;</p><p>&nbsp; &nbsp; case USCI_UART_UCRXIFG:</p><p>&nbsp; &nbsp; &nbsp; &nbsp; RXData = EUSCI_A_UART_receiveData(EUSCI_A1_BASE);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; ParseRxData(RXData);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; break;</p><p>&nbsp; &nbsp; case USCI_UART_UCTXIFG: break;</p><p>&nbsp; &nbsp; case USCI_UART_UCSTTIFG: break;</p><p>&nbsp; &nbsp; case USCI_UART_UCTXCPTIFG: break;</p><p>&nbsp; &nbsp; }</p><p>}</p><p><br></p>



<!-- |**|begin egp html banner|**| -->

<br>


<br>

<!-- |**|end egp html banner|**| -->


<div width="1" style="color: white; clear: both;"/>__._,_.___</div>

      
  

    
    <div id="fromDMARC" style="clear:both; margin-top: 10px;">
         <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
         Posted by: [email protected]         <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
    </div>
<!-- Start Recommendations -->
<!-- End Recommendations -->


<!-- |**|begin egp html banner|**| -->

<br><br>
<tt>
To unsubscribe from the msp430 group, send an email to:<BR>
[email protected]<BR>
<BR>
</tt>
<br><br>

<!-- |**|end egp html banner|**| -->



<!-- |**|begin egp html banner|**| -->

  <img src="http://geo.yahoo.com/serv?s=97476590/grpId=2342629/grpspId=1705005378/msgId=52527/stime=1475164795" width="1" height="1"> <br>

<!-- |**|end egp html banner|**| -->

  
<!-- |**|begin egp html banner|**| -->

<br>



   
     
 
        <!-- |**|begin egp html banner|**| -->
        <div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

        <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/msp430/info;_ylc=X3oDMTJlZmx2NDdpBF9TAzk3MzU5NzE0BGdycElkAzIzNDI2MjkEZ3Jwc3BJZAMxNzA1MDA1Mzc4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ3NTE2NDc5NQ--" style="text-decoration: none;">Visit Your Group</a></span>

     <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
                                                    </ul>
  </div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
  <a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJkYTQ1cHIxBF9TAzk3NDc2NTkwBGdycElkAzIzNDI2MjkEZ3Jwc3BJZAMxNzA1MDA1Mzc4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDc1MTY0Nzk1" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

   


  <br>

<!-- |**|end egp html banner|**| -->


<div style="color: white; clear: both;"/>__,_._,___</div>
</body>

</html>

--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV--