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);
    }
}
Esempio n. 2
0
void main()
{
 
    WDTCTL = WDTPW|WDTHOLD; //Stop watchdog timer
    if (CALBC1_1MHZ==0xFF)					// If calibration constant erased
    {											
      while(1);                               // do not load, trap CPU!!	
    }
    char p[24];
    setPins();
    clock_set();
    TimerA_UART_init();
    ADC10CTL0 |= ADC10ON;//ADC setup
    ADC10CTL1 |= INCH_0|ADC10SSEL_1|CONSEQ_1;  // set channel, ad source ACLK, sequence of channels
    ADC10AE0  |= BIT0;//|BIT1;
    ADC10CTL0 |= ENC|ADC10SC; //|ADC10IE;
    __enable_interrupt();
    for (;;)
    {
        // Wait for incoming character
        __bis_SR_register(LPM0_bits);
        //temp = (temp*35)/100; 
        itoa(temp,p,10);
        TimerA_UART_print(p);
        TimerA_UART_print("\r\n");
        //set_led(temp);
    }
}
Esempio n. 3
0
#include "msp430g2231.h"
#define UART_TXD 0x02                                  // TXD on P1.1 (Timer0_A.OUT0)..0x02 --> BIT1 
#define A4     BIT4
#define CONVERSION_VALUE          0.003222
#define UART_TBIT (1000000 / 9600)                     // 9600 Baud, SMCLK = 1MHz
                                                       // Globals for transmit UART communication
unsigned int txData;                                   // UART internal variable for TX  
//-------------------------Function//-------------------------------
void Init_Watchdog_1MHz(void);                           
void Iniy_Pin(void);   
void Init_TaimerA_For_UART_transmit(void);
void TimerA_UART_tx(unsigned char byte);               
void TimerA_UART_print(char *string);
void ADC_init(void);
void itoa(unsigned int val, char *str, unsigned int limit);
//---------------------------Main----------------------------------- */
void main(void){
 int adcValue;

  Init_Watchdog_1MHz();
  Iniy_Pin();
  Init_TaimerA_For_UART_transmit();
  ADC_init();
  
  _BIS_SR(GIE);                                // Enable CPU interrupts


  for(;;){ 
   P1DIR  |= BIT0 + BIT6;
   P1OUT ^=  BIT6+ BIT0;
 //   __delay_cycles(500000);  
    ADC10CTL0 |= ENC + ADC10SC;
    while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится*/
    adcValue=ADC10MEM;  // конвертируем результат в напряжение и сохраняем 3,2
    ADC10CTL0 ^= ENC + ADC10SC;
 //--------------convert Int--------------------
  char itoad[16];
  itoa(adcValue,itoad,3000);
  //---------------send int--------------------- 
  TimerA_UART_print(itoad); 
  TimerA_UART_print("\r\n");
 __delay_cycles(250000);  

}
}
Esempio n. 4
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);
    }
}
Esempio n. 6
0
void moveServo(int deg)
{
	int pwm,k,i;
	// generate PWM signal for the servo
	pwm = 60 + deg;
	for(k=0;k<50;k++)
	{
		P2OUT |= BIT2;
		for(i=0;i<pwm;i++)
			__delay_cycles(125);
		P2OUT &= ~BIT2;
		for(i=0;i<2000-pwm;i++)
			__delay_cycles(125);
	}
	// send back an acknowledge to
	TimerA_UART_print("ACK\r\n");
}