void msp430_set_cpu_speed(uint32_t speed) { dint(); __msp430_cpu_speed = speed; msp430_init_dco(); uint16_t br; U0CTL = SWRST; U0CTL = SWRST | CHAR; // 8-bit character U0TCTL = SSEL1 | TXEPT; // UCLK = SCLK U0RCTL = 0; // activate ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD br = (uint16_t)((__msp430_cpu_speed & 0xFFFFF0) / 115200uL); UBR00 = br; // set baudrate UBR10 = br>>8; UMCTL0 = calc_umctl(br); // set modulation U0CTL &= ~SWRST; //URCTL0 |= URXEIE; // allow chars to interrupt IE1 |= URXIE0; // enable rx interrupt IFG1 &= ~UTXIFG0; eint(); }
void msp430_set_cpu_speed(uint32_t speed) { disableIRQ(); __msp430_cpu_speed = speed; msp430_init_dco(); enableIRQ(); }
//! Initialize registers and all that jazz. void init(){ volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //LED and TX OUT PLEDDIR |= PLEDPIN; msp430_init_dco(); msp430_init_uart(); //Enable Interrupts. //eint(); }
//! Initialize registers and all that jazz. void init(){ WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //LED out and on. PLEDDIR |= PLEDPIN; PLEDOUT |= PLEDPIN; //Setup clocks, unique to each '430. msp430_init_dco(); msp430_init_uart(); //Enable Interrupts. //eint(); }
void board_init(void) { msp430_cpu_init(); /* disable watchdog timer */ WDTCTL = WDTPW + WDTHOLD; telosb_ports_init(); msp430_init_dco(); /* initialize bsp modules */ uart_init(); /* enable interrupts */ __bis_SR_register(GIE); }
void msp430_set_cpu_speed(uint32_t speed) { dint(); __msp430_cpu_speed = speed; msp430_init_dco(); uint16_t br; UCTL1 = SWRST | CHAR; // 8-bit character UTCTL1 |= SSEL1 | URXSE; // UCLK = MCLK // activate U1ME |= UTXE1 | URXE1; // Enable USART1 TXD/RXD br = (uint16_t)(__msp430_cpu_speed / 115200uL); UBR01 = br; // set baudrate UBR11 = br>>8; UMCTL1 = calc_umctl(br); // set modulation UCTL1 &= ~SWRST; //clock_init(); eint(); }
void board_init(void) { /* init CPU core */ msp430_cpu_init(); /* disable watchdog timer */ WDTCTL = WDTPW + WDTHOLD; /* init MCU pins as adequate for Z1 hardware */ z1_ports_init(); /* initializes DCO */ msp430_init_dco(); /* initialize UART/USB module */ uart_init(); /* enable interrupts */ __bis_SR_register(GIE); }
void init_hw() { WDTCTL = WDTPW + WDTHOLD; /* stop WDT */ msp430_init_dco(); P3SEL = BIT4 | BIT5; /* P3.4,5 = USCI_A0 TXD/RXD */ P3DIR = BIT0 | BIT1 | BIT3; /* reset, baud_rate, PIO3 */ P3OUT = BIT0; UCA0CTL1 |= UCSSEL_2; /* SMCLK */ set_baud_115200(); UCA0CTL1 &= ~UCSWRST; /* Initialize USCI state machine */ IE2 |= UCA0RXIE; /* Enable USCI_A0 RX interrupt */ /* IR configs */ P1SEL = BIT5; /* Set as alternate function */ P1DIR = BIT4 | BIT5; /* P1.4,5 = IR_OUT1, IR_OUT2 */ P1OUT &= ~(BIT4 | BIT5); /* Turn off IR LED */ CCTL1 = CCIE; /* CCR1 interrupt enabled */ CCR1 = (SYS_CLK * US_PER_SYS_TICK) - 1; CCTL0 = OUTMOD_4; /* CCR0 interrupt disabled and Toggle */ TACTL = TASSEL_2 + MC_2; /* SMCLK, continuous */ __bis_SR_register(GIE); /* interrupts enabled */ }