예제 #1
0
void TimerA_UART_printHex(char hexValue)
{
	unsigned char temp = 0;
	temp = hexValue & 0xF0;
	temp >>= 4;
	if(temp >= 10 ) // letter
	{
		temp += 55;
	}
	else
	{
		temp += 48;
	}
	TimerA_UART_tx(temp);
	temp = hexValue & 0x0F;
	//temp >>= 4;
	if(temp >= 10 ) // letter
	{
		temp += 55;
	}
	else
	{
		temp += 48;
	}
	TimerA_UART_tx(temp);
}
void main(int argc, char *argv[])
{
    CSL_init();

    TACCTL0 &= ~CCIE;                           // Disable GRACE enabled interrupt
                                                // for application specific code
    TimerA_UART_print("G2xx2 TimerA UART\r\n");
    TimerA_UART_print("READY.\r\n");

    while (1)
    {
        // Wait for incoming character
        __bis_SR_register(LPM0_bits);

        // Update board outputs according to received byte
        if (rxBuffer & 0x01) P1OUT |= 0x01; else P1OUT &= ~0x01;    // P1.0
        if (rxBuffer & 0x02) P1OUT |= 0x08; else P1OUT &= ~0x08;    // P1.3
        if (rxBuffer & 0x04) P1OUT |= 0x10; else P1OUT &= ~0x10;    // P1.4
        if (rxBuffer & 0x08) P1OUT |= 0x20; else P1OUT &= ~0x20;    // P1.5
        if (rxBuffer & 0x10) P1OUT |= 0x40; else P1OUT &= ~0x40;    // P1.6
        if (rxBuffer & 0x20) P1OUT |= 0x80; else P1OUT &= ~0x80;    // P1.7
        if (rxBuffer & 0x40) P2OUT |= 0x40; else P2OUT &= ~0x40;    // P2.6
        if (rxBuffer & 0x80) P2OUT |= 0x80; else P2OUT &= ~0x80;    // P2.7

        // Echo received character
        TimerA_UART_tx(rxBuffer);
    }
}
예제 #3
0
int checkSerial()
{
	int i;
	int retvalue = -1;
	// Iterate trough the received characters
	for(;rxEchoPos<rxBuffLen;rxEchoPos++)
	{
		// if it is not an Enter
		if(rxBuffer[rxEchoPos] != 13)
		{
			// Echo the char back
			TimerA_UART_tx(rxBuffer[rxEchoPos]);
		}
		else
		{
			// Echo back correct Enter for the terminal
			TimerA_UART_print("\r\n");
			retvalue = 0;
			// iterate trough the received characters
			for(i = 0; i < rxBuffLen-1; i++)
			{
				// if it is a number
				if(rxBuffer[i] > 47 && rxBuffer[i] < 58)
				{
					// add to the return value
					retvalue = retvalue * 10 + rxBuffer[i] - 48;
				}
			}
			// reset the receive buffer
			rxEchoPos = -1;
			rxBuffLen = 0;
		}
	}
	return retvalue;
}
//------------------------------------------------------------------------------
// main()
//------------------------------------------------------------------------------
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;               // Stop watchdog timer

    DCOCTL = 0x00;                          // Set DCOCLK to 1MHz
    BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ;

    P1OUT = 0x00;                           // Initialize all GPIO
    P1SEL = UART_TXD + UART_RXD;            // Timer function for TXD/RXD pins
    P1DIR = 0xFF & ~UART_RXD;               // Set all pins but RXD to output
    P2OUT = 0x00;
    P2SEL = 0x00;
    P2DIR = 0xFF;

    __enable_interrupt();
    
    TimerA_UART_init();                     // Start Timer_A UART
    TimerA_UART_print("G2xx1 TimerA UART\r\n");
    TimerA_UART_print("READY.\r\n");
    
    for (;;)
    {
        // Wait for incoming character
        __bis_SR_register(LPM0_bits);
        
        // Update board outputs according to received byte
        if (rxBuffer & 0x01) P1OUT |= 0x01; else P1OUT &= ~0x01;    // P1.0
        if (rxBuffer & 0x02) P1OUT |= 0x08; else P1OUT &= ~0x08;    // P1.3
        if (rxBuffer & 0x04) P1OUT |= 0x10; else P1OUT &= ~0x10;    // P1.4
        if (rxBuffer & 0x08) P1OUT |= 0x20; else P1OUT &= ~0x20;    // P1.5
        if (rxBuffer & 0x10) P1OUT |= 0x40; else P1OUT &= ~0x40;    // P1.6
        if (rxBuffer & 0x20) P1OUT |= 0x80; else P1OUT &= ~0x80;    // P1.7
        if (rxBuffer & 0x40) P2OUT |= 0x40; else P2OUT &= ~0x40;    // P2.6
        if (rxBuffer & 0x80) P2OUT |= 0x80; else P2OUT &= ~0x80;    // P2.7
        
        // Echo received character
        TimerA_UART_tx(rxBuffer);
    }
}
//------------------------------------------------------------------------------
// Prints a string over using the Timer_A UART
//------------------------------------------------------------------------------
void TimerA_UART_print(char *string)
{
    while (*string) {
        TimerA_UART_tx(*string++);
    }
}
예제 #6
0
void putc(unsigned s)
{
    TimerA_UART_tx(s);
}
예제 #7
0
void TimerA_UART_print(char *string) {                 // Prints a string using the Timer_A UART
  while (*string)
    TimerA_UART_tx(*string++);
  
 }
void SendByte(unsigned char touch)
{
  TimerA_UART_init();
  TimerA_UART_tx(touch);
  TimerA_UART_shutdown();
}