void HardwareSerial::begin(unsigned long baud) { unsigned int mod, divider; unsigned char oversampling; /* Calling this dummy function prevents the linker * from stripping the USCI interupt vectors.*/ usci_isr_install(); if (SMCLK/baud>=48) { // requires SMCLK for oversampling oversampling = 1; } else { oversampling= 0; } divider=(SMCLK<<4)/baud; pinMode_int(rxPin, rxPinMode); pinMode_int(txPin, txPinMode); *(&(UCAxCTL1) + uartOffset) = UCSWRST; *(&(UCAxCTL1) + uartOffset) = UCSSEL_2; // SMCLK *(&(UCAxCTL0) + uartOffset) = 0; *(&(UCAxABCTL) + uartOffset) = 0; #if defined(__MSP430_HAS_EUSCI_A0__) if(!oversampling) { mod = ((divider&0xF)+1)&0xE; // UCBRSx (bit 1-3) divider >>=4; } else {
void HardwareSerial::begin(unsigned long baud) { unsigned int divider; unsigned char mod, oversampling; /* Calling this dummy function prevents the linker * from stripping the USCI interupt vectors.*/ usci_isr_install(); if (SMCLK/baud>=48) { // requires SMCLK for oversampling oversampling = 1; } else { oversampling= 0; } divider=(SMCLK<<4)/baud; if(!oversampling) { mod = ((divider&0xF)+1)&0xE; // UCBRSx (bit 1-3) divider >>=4; } else {