UART Transmission TX inside ISR
| 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'm curious if someone can explain to me the (negative?) effects of trying to send UART bytes directly from my Interrupt Service Routine. Is this bad design practice because now my ISR will take longer to execute? Should I be using DMA to TX data here? Thanks in advance.</p><p><br></p><p>static void ParseRxData(const uint8_t rx_byte)</p><p>{</p><p> // Only Allow ASCII Characters to be loaded into buffer</p><p> // This will drop CR/LF etc, won't go in gRxBuffer</p><p> if (rx_byte >= 0x20)</p><p> gRxBuffer[gWrIndex++] = tolower(rx_byte); // stuff lowercase only into buffer</p><p><br></p><p> UartSendChar(rx_byte);</p><p><br></p><p> if (rx_byte == 0x0A) // End of Command<
/p><p> {</p><p> gRxBuffer[gWrIndex] = 0; // Add null pointer to end</p><p> gFlagCmdReady = true; // Set Global Flag Ready Command</p><p> gWrIndex = 0;</p><p> }</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> uint8_t RXData;</p><p> switch(__even_in_range(UCA1IV,USCI_UART_UCTXCPTIFG))</p><p> {</p><p> case USCI_NONE: break;</p><p> case USCI_UART_UCRXIFG:</p><p> RXData = EUSCI_A_UART_receiveData(EUSCI_A1_BASE);</p><p> ParseRxData(RXData);</p><p> break;</p><p> case USCI_UART_UCTXIFG: break;</p><p> case USCI_UART_UCSTTIFG: break;</p><p> case USCI_UART_UCTXCPTIFG: break;</p><p> }</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;"> • <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <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--