Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all 22003 articles
Browse latest View live

MSP430F5172: How to achieve MCU internal master clock frequency multiplier?

$
0
0

Part Number:MSP430F5172

dear all,

The internal clock of MCU is only 1M, which is a bit slow. I want to realize the internal master clock frequency multiplier. How should I set it?

Best regards,

Jeff wong


MSP430FR6989: ADC12/ Is there some advantage in using an ADC configured on differential mode with Vin- = GND than using single ended mode?

$
0
0

Part Number:MSP430FR6989

I have read that it's recommended to use differential mode to reduce noise injection. But If my input ranges from 0V (GND) to  Vr+, I have no need to use single ended mode, but because of noise injection I'd rather to use differential mode. And then my issue is: Is there some advantage in using differential connecting the Vin- to GND? I mean: Is it also efficient to noise injection, or that is the same of using single ended mode?

RTOS/MSP432P401R: Interrupt Service Routine (ISR) never called in NO-RTOS based project ( after including TI-RTOS)

$
0
0

Part Number:MSP432P401R

Tool/software:TI-RTOS

Hey, Guys

I Have problem with MSP432 Launchboard 

first of all, 

I created (imported) with empty_MSP_EXP432P401R_nortos_ccs project from Resource View.

then, 

I started making application kind of temperature sensor.

the process is simple 

1) boot -> 2) adc data (temperature) -> 3) record to sd card -> 4) deep sleep  or shut down mode -> 5) awake & repreat 

even if I started with no-rtos , I need sd-card function ( I realize fatfs is only including in TI-RTOS )

So, I added TI-RTOS setting into the project 

header include, dependency include.. blahblah

After long time, I did run it.

Everything is ok so far.

However, problem is that Interrunpt Service routines(ISR) are never called.

Naturally, It works fine with eliminating TI-RTOS setting.

Here is TI-RTOS setting that i added

1) project setting

2) modify .cmd file ( .intvecs & .resetVect )

3) add interrupt keyword to IRQ function (picture above)

Somen help me plz.

MSP-FET430UIF: connection advice

$
0
0

Part Number:MSP-FET430UIF

 

I am an absolute novice to all this but I have received a new firmware which I want to program into my electronic test instrument. I was told that this could be done by using a suitable software like FETPRO430 or UNIFLASH

I bought the MSP-FET430UIF jtag interface and it has 4 connections GND, RST, VCC and TST , on the jtag layout on the circuit diagram for my device it has an 8 pin connector with 7 designated it has VCC and GND so they are self explanatory but it also has TDI, TDO, TNS, TCK and ANA_RST

I would like to know how I interface the RST and TST on the jtag interface to the connections on the circuit board of my test instrument, i.e.which of the pins on the instrument do RST and TST connect too.

The micro on the instrument is a MSP430F149

Thank you in advance for your help

RTOS/MSP432P401R: awake from LPM3 or 3.5, 4, 4.5 mode by using GPIO (button Interrupt)

$
0
0

Part Number:MSP432P401R

Tool/software:TI-RTOS

Hello, Guy

I need another help.

I posted "Interrupt Service Routine (ISR) never called in NO-RTOS based project ( after including TI-RTOS)"   (https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/622382

In Opposite way, I tested that 

first of all, 

I created TI-RTOS based project ( empty_MSP_EXP432P401R_tirtos_ccs project from Resource View )

In this time, the problem is when the sensor enter deep sleep or shutdown mode (LPM 3, 3.5, 4, 4.5)

can awake it by GPIO interrupts  ?  I found example source code only using sleep mode (LPM0)  ( MSP432P401R Launchboard Red 2.X > TI Drivers > powersleep )

It shows that toggle between AM & LPM0 mode by using P1.1 button.

In Register Level Example, I found that button input is well at LPM3.5 mode

Please Some help me, plz

Thank you in advance.

CCS/MSP-FET430UIF: Error initializing emulator: No USB FET was found

$
0
0

Part Number:MSP-FET430UIF

Tool/software: Code Composer Studio

CCS is no longer finding my USB_FET.  It appears to be a problem with the driver.  When I tried using a new device I got a driver installation problem as shown below.

None of the other forum posts have helped so far.  Where do I start for trouble shooting this problem?

Thanks,

Travis

MSP430F6779: When should I need a driver to drive the SDADC in MSP430F6779?

$
0
0

Part Number:MSP430F6779

      Now I am learning about emeter on EVM430-F6779-3 EVM. And I have some problems to understand the analog input part which belongs to  the hardware design.

in the 3.2 on page 6 of document slaa577g the schematic is :

my question is why there is no differential adc driver just like ths4521 to drive the SD24 in MSP430?

In my opinion ,if the current signal is a high frequency but not 50/60Hz, here may need a driver,

so  when should we need a driver to dirve the SDADC in MSP4306779? Pls give some analysis with foumulas and calculations ,thanks !

(I have know the input resistor of SDADC in the datasheet)

MSP-FET use with Uniflash V4

$
0
0

I am new to TI controllers. Can i use MSP FET flash emulator with CCS7? 

Also can this device be used to burn txt file on controller using UniFlash V4??

Plz help.


Waveform generator using MSP432

$
0
0

Please help me design an analog front end for the waveform in the image below. The frequency is 200kHz. I should be able to change the phase of the waveform using the digital output from the mcu.

How to measuring energy after VFD

$
0
0

Hi,

we will measure the three phase energy data after the Variable Frequency Drive (VFD) and its line frequency will vary from 20 to 60 Hz. so we can't measure the energy data after the VFD.

Here i have given our design inputs FYR. Kindly suggest your Part Number for this requirement and its operate in variable line frequency, not in fixed 50/60 Hz.

Design inputs:

  1. Measuring method   = 3P3W
  2. Vphase-phase          = 220-600 Vrms (using Resistor divider)
  3. Iphase                       = 0-480Arms (using Rogowski/CT)
  4. Line Frequency         = 20 - 60Hz (VFD output frequency)

Measuring parameters:

  • Real power / Energy
  • Apparent power / Energy
  • Reactive power / Energy
  • Individual phase voltage and current
  • Energy pulse output
  • Frequency
  • Phase fault and sag Detection

Awaiting for your valuable reply.

Thanks in advance.

MSP430G2553: Bit I/O timing on a Launchpad - XORing different bits take different times

$
0
0

Part Number:MSP430G2553

I teach a lab course in interfacing using the Launchpad (MSP430G2553) at UNH in Manchester. One of the first exercises is of course - blinking an LED. The code is essentially setting up P1.0 as an output, then going into a loop where they XOR #BIT0, &P1OUT to change the state, then set a register to a number and decrement/loop until it reaches 0 (as a delay) and do all of that indefinitely. The light blinks. I ask them to measure it on a scope, estimate the instruction time and the guess how fast you can toggle the LED without the delay.

They then take out the delay so the code is basically:

Loop

        XOR   #BIT0, &P1OUT

JMP Loop

This blinks the red LED, cycling once every 11.5 uSec or so. One lab group then changed the code to use #BIT6 instead to blink the green LED. Same two instructions in the loop and the group measured 12.6 uSec instead. They wondered why the same two instructions take longer when you toggle bit 6 instead of bit 0. I have no clue - does anyone have any idea?

Thanks in advance for any suggestions!

MSP432P401R: ned an example of using DMA_INT0_SRCFLG register

$
0
0

Part Number:MSP432P401R

Hello collegues,

I would be grateful for the example of using DMA_INT0_SRCFLG register 

I know that in DMA  INT_DMA_INT0 interrupt is used as OR (common) interupt for all DMA cases, but DMA source is written in DMA_INT0_SRCFLG  register,

has anybody a  C code example of it?

Thanks 

MSP430G2553: Problem with code for switch debounce

$
0
0

Part Number:MSP430G2553

Hello, I'm trying this debounce code. The reset switch (S1) and the launchpad switch P1.3 (S2) are used. When S1 is pressed, the green led lights up. When S2 is pressed, the red LED lights up. If one of the two switches is pressed for more than 1.5 seconds, the two LEDs light up and when the switch is released the two LEDs are switched off. This works perfectly. I added an external switch and connected it to P2.1 (S3). Its functionality is the same as the launchpad's S2. When the button P2.1 (S3) is pressed, the pulsation is detected and the red led lights up. Then I release the button but the red led does not turn off and after 1.5s (approximately) the green LED also lights up. After this action, the other two buttons (S1 and S2) continue to operate correctly, but S3 no longer detects any pulsation. The behavior is as if it was not detected that the button P2.1 has been released and then it seems that the interruption in P2.1 is disabled.


To make it easier to find the error, the code part I added is the 'InitialiseSwitch2' method and the last two watchdog ISR lines:

#include "msp430g2553.h"

#define FLIP_HOLD (0x3300 | WDTHOLD) // flip HOLD while preserving other bits

#define S1 1 // Switch 1 Flag Mask
#define S2 2 // Switch 2 Flag Mask
#define BOTH 3 // Both switches Flag Mask
#define PRESSDURATION 47 // Long press duration 47*32ms = 1.5s

/* Events */
#define SWITCH1 0
#define SWITCH2 1


volatile char PressCountS1 = 0;
volatile char PressCountS2 = 0;
volatile char SwitchState = 0; // Flag used internally within the interrupts to store the current switch state
volatile char Pressed = 0; // Flag used to indicate a Switch Press
volatile char PressRelease = 0; // Flag used to indicate a Switch Press and Release
volatile char LongPress = 0; // Flag used to indicate a Switch Long Press

void ConfigureWDT(void);
void InitialiseSwitch2(void); // Switch P1.3
void InitialiseSwitch3(void); // Switch P2.1

void main (void)
{
    ConfigureWDT();
    BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz
    DCOCTL = CALDCO_1MHZ; // Set DCO to 1MHz

    P1DIR |= (BIT0|BIT6); // Set the LEDs on P1.0 and P1.6 as outputs
    P1OUT |= (BIT0|BIT6); // Turn on P1.0 and P1.6 LEDs to indicate initial state

    InitialiseSwitch2(); // Initialize Switch 2 which is attached to P1.3
    InitialiseSwitch3(); // Initialize Switch 2 which is attached to P2.1

    while(1){

        if (PressRelease)
        {

            PressRelease &= ~(S1 + S2); // Clear switch flag to indicate that the switch press has been serviced
        }

        __bis_SR_register(LPM0_bits + GIE);

    }
}

void ConfigureWDT(void){
    // The Watchdog Timer (WDT) will be used to debounce s1 and s2
    WDTCTL = WDTPW + WDTHOLD + WDTNMIES + WDTNMI; //WDT password + Stop WDT + detect RST button falling edge + set RST/NMI pin to NMI
    IFG1 &= ~(WDTIFG + NMIIFG); // Clear the WDT and NMI interrupt flags
    IE1 |= WDTIE + NMIIE; // Enable the WDT and NMI interrupts
}

/* This function configures the button so it will trigger interrupts
 * when pressed. Those interrupts will be handled by PORT1_ISR() */
void InitialiseSwitch2(void){
    P1DIR &= ~BIT3; // Set button pin as an input pin
    P1OUT |= BIT3; // Set pull up resistor on for button
    P1REN |= BIT3; // Enable pull up resistor for button to keep pin high until pressed
    P1IES |= BIT3; // Enable Interrupt to trigger on the falling edge (high (unpressed) to low (pressed) transition)
    P1IFG &= ~BIT3; // Clear the interrupt flag for the button
    P1IE |= BIT3; // Enable interrupts on port 1 for the button
}

void InitialiseSwitch3(void){
    P2DIR &= ~BIT1; // Set button pin as an input pin
    P2OUT |= BIT1; // Set pull up resistor on for button
    P2REN |= BIT1; // Enable pull up resistor for button to keep pin high until pressed
    P2IES |= BIT1; // Enable Interrupt to trigger on the falling edge (high (unpressed) to low (pressed) transition)
    P2IFG &= ~BIT1; // Clear the interrupt flag for the button
    P2IE |= BIT1; // Enable interrupts on port 1 for the button
}


// isr to detect make/break of s1 at the nRST/NMI pin
// Note the occurrence of an NMI interrupt automatically disables the NMI interrupt enable.
#pragma vector = NMI_VECTOR
__interrupt void nmi_isr(void)
{
    if (IFG1 & NMIIFG) // Check if NMI interrupt was caused by nRST/NMI pin
    {
        IFG1 &= ~NMIIFG; // clear NMI interrupt flag
        if (WDTCTL & WDTNMIES) // falling edge detected
        {
            P1OUT |= BIT6; // Turn on P1.0 red LED to indicate switch 1 is pressed
            SwitchState |= S1; // Set Switch 1 State to pressed
            Pressed |= S1; // Set S1 pressed flag
            PressCountS1 = 0; // Reset Switch 2 long press count
            WDTCTL = WDT_MDLY_32 | WDTNMI; // WDT 32ms delay + set RST/NMI pin to NMI
            // Note: WDT_MDLY_32 = WDTPW | WDTTMSEL | WDTCNTCL // WDT password + Interval mode + clear count
            // Note: this will also set the NMI interrupt to trigger on the rising edge

        }
        else // rising edge detected
        {
            P1OUT &= ~(BIT6+BIT0); // Turn off P1.6 and P1.0 LEDs
            SwitchState &= ~S1; // Reset Switch 1 Pressed flag
            PressRelease |= S1; // Set Press and Released flag
            WDTCTL = WDT_MDLY_32 | WDTNMIES | WDTNMI; // WDT 32ms delay + falling edge + set RST/NMI pin to NMI
        }
        __bic_SR_register_on_exit(LPM0_bits); //Wake CPU
    } // Note that NMIIE is now cleared; the wdt_isr will set NMIIE 32ms later
    else {/* add code here to handle other kinds of NMI, if any */
    }
}

#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
    if (P1IFG & BIT3)  // Chequeamos que se ha pulsado el pulsador conectado al P1.3
    {
        P1IE &= ~BIT3; // Disable Button interrupt to avoid bounces
        P1IFG &= ~BIT3; // Clear the interrupt flag for the button
        if (P1IES & BIT3)
        { // Falling edge detected
            P1OUT |= BIT0; // Turn on P1.0 red LED to indicate switch 2 is pressed
            SwitchState |= S2; // Set S2 state to press
            Pressed |= S2; // Set Switch 2 Pressed flag
            PressCountS2 = 0; // Reset Switch 2 long press count
        }
        else
        { // Rising edge detected
            P1OUT &= ~(BIT0+BIT6); // Turn off P1.0 and P1.6 LEDs
            SwitchState &= ~S2; // Reset Switch 2 state
            PressRelease |= S2; // Set Press and Released flag
        }
        P1IES ^= BIT3; // Toggle edge detect
        IFG1 &= ~WDTIFG; // Clear the interrupt flag for the WDT
        WDTCTL = WDT_MDLY_32 | (WDTCTL & 0x007F); // Restart the WDT with the same NMI status as set by the NMI interrupt
        __bic_SR_register_on_exit(LPM0_bits); //Wake CPU
    }

}

#pragma vector=PORT2_VECTOR
__interrupt void PORT2_ISR(void)
{
    if (P2IES & BIT1) // Chequeamos que se ha pulsado el pulsador conectado al P2.1
    {
            P2IE &= ~BIT1; // Disable Button interrupt to avoid bounces
            P2IFG &= ~BIT1; // Clear the interrupt flag for the button
            if (P2IES & BIT1)
            { // Falling edge detected
                P1OUT |= BIT0; // Turn on P1.0 red LED to indicate switch 2 is pressed
                SwitchState |= S2; // Set S2 state to press
                Pressed |= S2; // Set Switch 2 Pressed flag
                PressCountS2 = 0; // Reset Switch 2 long press count
            }
            else
            { // Rising edge detected
                P1OUT &= ~(BIT0+BIT6); // Turn off P1.0 and P1.6 LEDs
                SwitchState &= ~S2; // Reset Switch 2 state
                PressRelease |= S2; // Set Press and Released flag
            }
            P2IES ^= BIT1; // Toggle edge detect
            IFG1 &= ~WDTIFG; // Clear the interrupt flag for the WDT
            WDTCTL = WDT_MDLY_32 | (WDTCTL & 0x007F); // Restart the WDT with the same NMI status as set by the NMI interrupt
            __bic_SR_register_on_exit(LPM0_bits); //Wake CPU
     }
}

// WDT is used to debounce s1 and s2 by delaying the re-enable of the NMIIE and P1IE interrupts
// and to time the length of the press
#pragma vector = WDT_VECTOR
__interrupt void wdt_isr(void)
{
    if (SwitchState & S1) // Check if switch 1 is pressed
    {
        if (++PressCountS1 == PRESSDURATION ) // Long press duration 47*32ms = 1.5s
        {
            P1OUT |= BIT0; // Turn on the P1.1 LED to indicate long press
            LongPress |= S1; //Set S1 bit in long press flag
            __bic_SR_register_on_exit(LPM0_bits); //Wake CPU
        }
    }

    if (SwitchState & S2) // Check if switch 2 is pressed
    {
        if (++PressCountS2 == PRESSDURATION ) // Long press duration 47*32ms = 1.5s
        {
            P1OUT |= BIT6; // Turn on the P1.2 LED to indicate long press
            LongPress |= S2; //Set S2 bit in long press flag
            __bic_SR_register_on_exit(LPM0_bits); //Wake CPU
        }
    }

    IFG1 &= ~NMIIFG; // Clear the NMI interrupt flag (in case it has been set by bouncing)
    P1IFG &= ~BIT3; // Clear the button interrupt flag (in case it has been set by bouncing)
    IE1 |= NMIIE; // Re-enable the NMI interrupt to detect the next edge
    P1IE |= BIT3; // Re-enable interrupt for the button on P1.3
    
    P2IFG &= ~BIT1; // Clear the button interrupt flag (in case it has been set by bouncing)
    P2IE |= BIT1; // Re-enable interrupt for the button on P2.1
}

Thanks in advance.

Best regards,

Fran Martin

MSP432P401R: Code failing to run when MSP432 powered externally

$
0
0

Part Number:MSP432P401R

Today, all of a sudden, my MSP432 would not run its program without the Launchpad being plugged into the computer. Previously, I was always able to power it externally without any power from the debugger side of the Launchpad and the code would run perfectly. However, the MSP432 now waits in some sort of halted state until I plug the USB cable that runs from the debug side of the board into my computer. As I am not powering it through the debug side, I do not think this is a power issue. In addition, once the code starts after plugging the USB cable in, I can unplug the USB cable and the code will continue to run.

I have removed the 3V3 and 5V jumper pins from the debugger to the MSP432 side as I am powering the MPS432 from an eternal source. However, the debugger pins are still connected. It seems like the MSP432 is waiting in a halted state until it gets some sort of signal from the debugger. Is this possible?

RTOS/MSP430F5529: I2C driver block

$
0
0

Part Number:MSP430F5529

Tool/software:TI-RTOS

Hi,

when I use the RTOS I2C driver, the program will block if the I2C device not connect. If my machine's i2c device bad, the machine will hang because i2c driver block. It can't be accepted.

Is there any RTOS I2C driver with timeout examples?

tirtos_msp43x_2_20_00_06 and bios_6_46_00_23


MSP430F427: Why 4096 samples accumulated in ADC ISR (for metering purpose), why not 5000 or 450 or any such value.

$
0
0

Part Number:MSP430F427

Dear All,

I have always seen that approx all programmers in metering industry, including me, uses to accumulate 4096 samples of  ADC and then take its average.

Even I am using to accumulate 4096 samples, (I just accepted as standard), then take its average, but I am still not sure why 4096 samples.

I have not seen any difference is accuracy if even taking as 5000 samples or even at 450 samples.

But I have seen in standard programs that this values is always 4096.

Please clear my curiosity. If there is some logic or it is just a standard practice.

Thanks in advance.

 

MSP430F5438: MSP 430 Clock Requirement For UART Baud rate 38400

$
0
0

Part Number:MSP430F5438

We are implementing the Modbus in our design wherein the requirement is to support the Modbus speed of 38400 baud. Currently we are using ACLK of 32.768KHz  for MSP430 which can reasonable bit-slice up to 9.6K baud. To support 38.4Kbps baud rate in UART, crystal frequency has to be selected accordingly. 

By theory UART clock needs to have 16X greater than the Baud rate, which means UART frequency has to be min 614.4Kbps (38.4 kbps X16) wherein the crystal frequency comes to 9.83040MHz  to achieve the desired baud rate. However such high frequency clock may likely to  impact the EMC performance. Hence need to know the exact clock requirement for MSP430 UART to achieve this baud rate to avoid any errors in communication.(variation due to crystal tolerance, jitter ignored).

As per SLA0049 application note, it is found that we can use MCLK of 1.048MHz to generate UART baud rate of 38.4Kbps. Does this mean that we need to use this crystal frequency? Please confirm.

Also what change needs to be done in SW to handle this change?

Thanks,

Ajit

CCS/MSP430G2452: CCS/MSP430G2452:

$
0
0

Part Number:MSP430G2452

Tool/software: Code Composer Studio

Hello,

I have NSP430G2452 value line launch pad. I am trying to use CCS Cloud to build my first project on my macbook pro. I have connected launch pad with my macbook using USB cable. When I try to run my project, it gets compiled, but I get error shown below. How can I resolve this error?

Thanks,

Kaustubh

CCS/MSP430G2553: Add MSP430_math.h without download CCS again

$
0
0

Part Number:MSP430G2553

Tool/software: Code Composer Studio

Hi guy.

Well I want to download MSP_math.h library but I've noticed that I have to download CSS again. So I need to know, How can I download ONLY msp430_math library without download CCS again?

Regards. 

MSP430FR59941: Slave I2C does not ack device address following a restart

$
0
0

Part Number:MSP430FR59941

I'm trying to configure my msp430 as an I2C slave and I want it to work the same way you would read a register out of any other slave.  Usually by sending the device address, register address, issuing a restart, and then reading the data back.   So far I'm able to write the register address and receive it in the MSP430, but after my master issues a restart and again sends the device address as a read, I do not get an ack.

Do I have to switch modes somewhere in order to send bytes out?

Here's my setup code:

void setup_slave_i2c(void){
    // Configure GPIO
    P6SEL0 |= BIT4 | BIT5;
    P6SEL1 &= ~(BIT4 | BIT5);

    // Configure USCI_B2 for I2C mode
    UCB3CTLW0 = UCSWRST;                    // Software reset enabled
    UCB3CTLW0 |= UCMODE_3 | UCSYNC;         // I2C mode, sync mode
    UCB3I2COA0 = 0x38 | UCOAEN;             // own address is 0x48 + enable
    UCB3CTLW0 &= ~UCSWRST;                  // clear reset register
    UCB3IE |= UCRXIE | UCTXIE0 | UCSTPIE;            // transmit,stop interrupt enable
}

Here's my interrupt handler code:

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector = EUSCI_B3_VECTOR
__interrupt void USCI_B3_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(EUSCI_B3_VECTOR))) USCI_B3_ISR (void)
#else
#error Compiler not supported!
#endif
{
    switch(__even_in_range(UCB3IV, USCI_I2C_UCBIT9IFG))
    {
        case USCI_NONE:          break;     // Vector 0: No interrupts
        case USCI_I2C_UCALIFG:   break;     // Vector 2: ALIFG
        case USCI_I2C_UCNACKIFG: break;     // Vector 4: NACKIFG
        case USCI_I2C_UCSTTIFG:
            UCB3IFG &= ~UCSTPIFG;
            /* Clear address and receive buffer */
            __bic_SR_register_on_exit(LPM0_bits);
            break;     // Vector 6: STTIFG
        case USCI_I2C_UCSTPIFG:  break;     // Vector 8: STPIFG
        case USCI_I2C_UCRXIFG3:  break;     // Vector 10: RXIFG3
        case USCI_I2C_UCTXIFG3:  break;     // Vector 12: TXIFG3
        case USCI_I2C_UCRXIFG2:  break;     // Vector 14: RXIFG2
        case USCI_I2C_UCTXIFG2:  break;     // Vector 16: TXIFG2
        case USCI_I2C_UCRXIFG1:  break;     // Vector 18: RXIFG1
        case USCI_I2C_UCTXIFG1:  break;     // Vector 20: TXIFG1
        case USCI_I2C_UCRXIFG0:             // Vector 22: RXIFG0
            UCB3IFG &= ~UCRXIFG;  //clear rx ifg
            //UCB3CTLW0 |= UCTXSTP;       // I2C stop condition
            //*RXData= UCB3RXBUF;
            *RXSlaveData = UCB3RXBUF;
            RXSlaveData++;
            //*RXData++;
            __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0
            break;
        case USCI_I2C_UCTXIFG0:             // Vector 24: TXIFG0
            UCB2TXBUF = 0xAA;
            __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0
            break;
        case USCI_I2C_UCBCNTIFG: break;     // Vector 26: BCNTIFG
        case USCI_I2C_UCCLTOIFG: break;     // Vector 28: clock low timeout
        case USCI_I2C_UCBIT9IFG: break;     // Vector 30: 9th bit
        default: break;
    }
}

What did I miss?  Any advice is always appreciated.

Thank you

Viewing all 22003 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>