Difference between revisions of "ARDUINO 328 Functions Serial Link"

From ROBOTC API Guide
Jump to: navigation, search
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
<yambe:breadcrumb self="Serial Link">ARDUINO_Functions_and_Variables|Functions and Variables</yambe:breadcrumb>
+
{{DISPLAYTITLE:328 Serial Link Functions}}
 +
<yambe:breadcrumb self="328 Serial Link">ARDUINO_328_Functions_and_Variables|Functions and Variables</yambe:breadcrumb>
 
<br />
 
<br />
 +
 +
The 328P-Based Arduino has 1 serial ports. This serial port is typically reserved for use for downloading programs and using the ROBOTC debugger. Users can change the serial port to have control over the RX and TX lines, but doing so will render the ROBOTC debugger useless. Users may also experience an issue when trying to download new code after running a program that modifies the Serial Port for non-system use - We are currently working on this issue, but the temporary work around is to download the ROBOTC firmware again to restore normal functionality.
 +
 +
[[File:SerialPortsUno.png]]
  
 
{{tl|1|1}}
 
{{tl|1|1}}
Line 77: Line 82:
 
|-
 
|-
 
| style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]])  Function will set the Baud Rate for port 'nPort'.
 
| style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]])  Function will set the Baud Rate for port 'nPort'.
Acceptable Baud Rates: 4800, 9600, 19200, 38400, 57600, 115200, 230400.  
+
Acceptable Baud Rates: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 200000, 230400 and 250000.  
  
  
Line 100: Line 105:
 
   |<syntaxhighlight lang="robotc">
 
   |<syntaxhighlight lang="robotc">
 
setBaudRate(uartOne, baudRate9600);  // retrieve the next char from UART Port 'uartOne'
 
setBaudRate(uartOne, baudRate9600);  // retrieve the next char from UART Port 'uartOne'
 +
</syntaxhighlight>
 +
  |-
 +
  |}
 +
|-
 +
|}
 +
<br />
 +
 +
== configureSerialPort ==
 +
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 +
|-
 +
| class="functionType"| <span class="bigKeywordBI">void </span><span class="bigKeywordB">configureSerialPort</span><span class="bigCodePunc">(</span><span class="bigKeywordBI">const </span><span class="bigKeywordB">TUARTs </span><span class="bigCodeBasic">nPort</span><span class="bigCodePunc">, </span><span class="bigKeywordBI">TSerialPortMode </span><span class="bigCodeBasic">nMode</span><span class="bigCodePunc">)</span>
 +
|-
 +
| style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]]) This function will manually configure the serial port for a specific mode (system, user, Xbee, VEX LCD, etc). You can also set this same functionality using the "Motors and Sensor Setup" window.
 +
<br />
 +
 +
{| class="parameterTable" cellpadding="5%" width="100%"
 +
  ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Parameter
 +
  ! width="60%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Explanation
 +
  ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type
 +
  |-
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|''nPort''
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|A sensor port or name
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|[[Data_Types#dataType_TUARTs|TUARTs]]
 +
  |-
 +
  | style="border-style: solid; border-width: 0px 0px 0px 0px"|''TSerialPortMode''
 +
  | style="border-style: solid; border-width: 0px 0px 0px 0px"|The type of the serial device attached to this pin.
 +
  | style="border-style: solid; border-width: 0px 0px 0px 0px"|[[Data_Types#dataType_TSerialPortMode|TSerialPortMode]]
 +
  |-
 +
  |}
 +
 +
 +
  {|
 +
  |-
 +
  |<syntaxhighlight lang="robotc">
 +
configureSerialPort(UART1, uartUserControl);  //Configures UART1 as a User Control Serial Port
 +
</syntaxhighlight>
 +
  |-
 +
  |}
 +
|-
 +
|}
 +
<br />
 +
 +
== bXmitComplete ==
 +
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 +
|-
 +
| class="functionType"| <span class="bigKeywordBI">bool </span><span class="bigKeywordB">bXmitComplete</span><span class="bigCodePunc">(</span><span class="bigKeywordBI">const </span><span class="bigKeywordB">TUARTs </span><span class="bigCodeBasic">nPort</span><span class="bigCodePunc">)</span>
 +
|-
 +
| style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_bool|bool]])  Function will return if the transmit (Xmit) buffer is empty.
 +
 +
 +
{| class="parameterTable" cellpadding="5%" width="100%"
 +
  ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Parameter
 +
  ! width="60%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Explanation
 +
  ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type
 +
  |-
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|''nPort''
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|A sensor port or name
 +
  | style="border-style: solid; border-width: 1px 0px 0px 0px"|[[Data_Types#dataType_TUARTs|TUARTs]]
 +
  |-
 +
  |}
 +
 +
 +
  {|
 +
  |-
 +
  |<syntaxhighlight lang="robotc">
 +
  sendChar(UART1, 'H');      //Send a character
 +
  if(!bXmitComplete(UART0))  //Wait until character has been transmitted
 +
    wait1Msec(1);
 
</syntaxhighlight>
 
</syntaxhighlight>
 
   |-
 
   |-

Latest revision as of 21:16, 11 May 2012

ARDUINOFunctions and Variables → 328 Serial Link


The 328P-Based Arduino has 1 serial ports. This serial port is typically reserved for use for downloading programs and using the ROBOTC debugger. Users can change the serial port to have control over the RX and TX lines, but doing so will render the ROBOTC debugger useless. Users may also experience an issue when trying to download new code after running a program that modifies the Serial Port for non-system use - We are currently working on this issue, but the temporary work around is to download the ROBOTC firmware again to restore normal functionality.

SerialPortsUno.png

Color Key
Function:
Variable:


getChar

short getChar(const TUARTs nPort)
(short) Function will retrieve the next character from the buffer that was sent to port 'nPort'.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs


getChar(uartOne);  // retrieve the next char from UART Port 'uartOne'


sendChar

void sendChar(const TUARTs nPort, short nChar)
(void) Function will send the next character to port 'nPort'.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
nChar A char to send to 'nPort'. (Can be a short or a char) short


sendChar(uartOne, 'B');  // send the next char from UART Port 'uartOne'


setBaudRate

void setBaudRate(const TUARTs nPort, TBaudRate nBaudRate)
(void) Function will set the Baud Rate for port 'nPort'.

Acceptable Baud Rates: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 200000, 230400 and 250000.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
nBaudRate The baud rate to use TBaudRate


setBaudRate(uartOne, baudRate9600);  // retrieve the next char from UART Port 'uartOne'


configureSerialPort

void configureSerialPort(const TUARTs nPort, TSerialPortMode nMode)
(void) This function will manually configure the serial port for a specific mode (system, user, Xbee, VEX LCD, etc). You can also set this same functionality using the "Motors and Sensor Setup" window.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
TSerialPortMode The type of the serial device attached to this pin. TSerialPortMode


configureSerialPort(UART1, uartUserControl);  //Configures UART1 as a User Control Serial Port


bXmitComplete

bool bXmitComplete(const TUARTs nPort)
(bool) Function will return if the transmit (Xmit) buffer is empty.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs


  sendChar(UART1, 'H');      //Send a character
  if(!bXmitComplete(UART0))  //Wait until character has been transmitted
    wait1Msec(1);