Ejemplo n.º 1
0
/**
 * Main routine
 */
int main(void)
{
    WDTCTL  = WDTPW + WDTHOLD; 	// Stop WDT
    BCSCTL1 = CALBC1_1MHZ;      // Set DCO
    DCOCTL  = CALDCO_1MHZ;
 
    P1DIR  = BIT0 + BIT6; 		// P1.0 and P1.6 are the red+green LEDs	
    P1OUT  = BIT0 + BIT6; 		// All LEDs off

    uart_init();

	// register ISR called when data was received
    uart_set_rx_isr_ptr(uart_rx_isr);

    __bis_SR_register(GIE);

    uart_puts("\n***************\n");
    uart_puts("MSP430 harduart\n");
    uart_puts("***************\n");

    ADC_init_intref_multichannel((uint16_t *)adc,SAMPLES_CNT*CHANNELS_CNT); // Init ADC

    __bis_SR_register(LPM0_bits+GIE); // Go to sleep

    for(;;); // For debug

}
Ejemplo n.º 2
0
/**
 * Main routine
 */
int main(void)
{
    WDTCTL  = WDTPW + WDTHOLD; 	// Stop WDT
    if (CALBC1_16MHZ==0xFF)					// If calibration constant erased
    	{
    		while(1);                			// do not load, trap CPU!!
    	}


	BCSCTL1 = CALBC1_16MHZ;      // Set DCO
  	DCOCTL  = CALDCO_16MHZ;

	P1DIR  = BIT0 + BIT6; 		// P1.0 and P1.6 are the red+green LEDs
	P1OUT  = BIT0 + BIT6; 		// All LEDs off


    uart_init();
   //register ISR called when data was received
    uart_set_rx_isr_ptr(uart_rx_isr);

    // initialize LED strip
    initStrip();  // ***** HAVE YOU SET YOUR NUM_LEDS DEFINE IN WS2812.C? ******
	//fillStrip(  0x00, 0x00, 0xFF);
	//showStrip();

    __bis_SR_register(GIE);
}
Ejemplo n.º 3
0
void uart_init(void)
{
	uart_set_rx_isr_ptr(0L);

	P1SEL  = RXD + TXD;                       
  	P1SEL2 = RXD + TXD;                       
  	UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  	UCA0BR0 = 104;                            // 1MHz 9600
  	UCA0BR1 = 0;                              // 1MHz 9600
  	UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
  	UCA0CTL1 &= ~UCSWRST;                     // Initialize USCI state machine
  	IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
}
Ejemplo n.º 4
0
/**
 * Main routine
 */
int main(void)
{
    WDTCTL  = WDTPW + WDTHOLD; 	// Stop WDT
	BCSCTL1 = CALBC1_1MHZ;      // Set DCO
  	DCOCTL  = CALDCO_1MHZ;

	P1DIR  = BIT0 + BIT6; 		// P1.0 and P1.6 are the red+green LEDs
	P1OUT  = BIT0 + BIT6; 		// All LEDs off

    uart_init();

	// register ISR called when data was received
    uart_set_rx_isr_ptr(uart_rx_isr);

    __bis_SR_register(GIE);

    uart_puts((char *)"\n\r***************\n\r");
    uart_puts((char *)"MSP430 harduart\n\r");
    uart_puts((char *)"***************\n\r\n\r");

	uart_puts((char *)"PRESS any key to start echo example ... ");

	unsigned char c = uart_getc();

	uart_putc(c);
	uart_puts((char *)"\n\rOK\n\r");

    volatile unsigned long i;

    while(1) {

	   P1OUT ^= BIT6; 			// Toggle P1.6 output (green LED) using exclusive-OR
	   i = 50000;             	// Delay

	   do (i--);				// busy waiting (bad)
	   while (i != 0);
    }
}
Ejemplo n.º 5
0
void uart_init(void) {
    // initialize the function pointer to NULL
    uart_set_rx_isr_ptr(0L);

    // Select the recieve and transmit pins
    P1SEL  = RXD + TXD;
    P1SEL2 = RXD + TXD;

    // SMCLK
    UCA0CTL1 |= UCSSEL_2;

    // 1MHz 9600
    UCA0BR0 = 104;
    UCA0BR1 = 0;

    // Modulation UCBRSx = 1
    UCA0MCTL = UCBRS0;

    // Initialize USCI state machine
    UCA0CTL1 &= ~UCSWRST;

    // Enable USCI_A0 RX interrupt
    IE2 |= UCA0RXIE;
}
Ejemplo n.º 6
0
int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  
  BCSCTL1 = CALBC1_1MHZ; // Set DCO
  DCOCTL = CALDCO_1MHZ;
  
  P1DIR = 0xf9;
  P1OUT = 0x10;
  ADC_init(); // !!!!!!
  uart_init();
  uart_set_rx_isr_ptr(uart_rx_isr);

  __bis_SR_register(GIE); // global interrupt enable

  uart_puts((char *)"\n\r***************\n\r");
  uart_puts((char *)"MSP430 harduart\n\r");
  uart_puts((char *)"***************\n\r\n\r");

  uart_puts((char *)"PRESS any key to start echo example ... ");

  unsigned char c = uart_getc();

  uart_putc(c);
  uart_puts((char *)"\n\rOK\n\r");

  // int n;
  // int prev = 0;
  // while (1)
  // {
  //   ADC10CTL0 |= ADC10SC;   // начинаем новое преобразование
  //   while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится
  //   // if (ADC10MEM < prev) {
  //     // n = 0x00;
  //     // addValue(ADC10MEM);
  //     // if (micro >= MIN)
  //     //   n |= 0x10;
  //     // if (micro >= MIN + (MAX-MIN)/5)
  //     //   n |= 0x08;
  //     // if (micro >= MIN + (MAX-MIN)/5*2)
  //     //   n |= 0x80;
  //     // if (micro >= MIN + (MAX-MIN)/5*3)
  //     //   n |= 0x01;
  //     // if (micro >= MIN + (MAX-MIN)/5*4)
  //     //   n |= 0x20;
  //     // P1OUT = n;
  //   // }
  //   prev = ADC10MEM;
  // }

  volatile unsigned long i = 5000;
  int max = 0;

  ADC10CTL0 |= ADC10SC;
  while(1) {
    if ((ADC10CTL1 & ADC10BUSY) != 0x01) {
      // uart_puts((char *)"MSP430 harduart\n\r");
      // uart_printf("ADC %x\r\n", ADC10MEM);
      ADC10CTL0 |= ADC10SC;
    }

    if (i == 0) {
      P1OUT ^= 0x80; // Toggle P1.6 output (green LED) using exclusive-OR
      i = 5000; // Delay
      uart_printf("ADC %x\r\n", max);
      max = 0;
    }
    i--;
    if (ADC10MEM > max)
      max = ADC10MEM;

    // do (i--); // busy waiting (bad)
    // while (i != 0);
  } 
}