This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/MSP430F5529: Internal pull-down resistor not working with button.

Part Number: MSP430F5529

Tool/software: Code Composer Studio

Hi all,

While I was fiddling around with the GPIO input ports, I tried to use the P1.1 pushbutton of the MSP430F5529LP LaunchPad with the pull-up configuration, all worked fine and good, with all the necessary adjustments. On the other hand, when I try to use the pull-down resistor configuration, the P1IN register does not change to 1 when I press the pushbutton. I followed the instructions on the User Guide (SLAU208) - setting the respective bit in P1OUT to 0 in order to use the pull-DOWN configuration on the pin, and enabling the respective P1REN bit to 1 in order to enable such resistor. Below are the codes for the pull-up and for the pull-down configurations, where the latter does not work. I am very confused.

#include <msp430.h> 

#define LED    BIT0
#define BTN    BIT1

/**
 * main.c
 */
int main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
	P1DIR |= LED;
	P1DIR &= ~BTN;
	P1OUT |= BTN | LED; // set as pull-up and LED initially on

	P1REN = BTN; // enable pull-up resistor

	while(1) {
	if((P1IN & BTN) != 0)
	    P1OUT ^= LED;
	}

	return 0;
}

#include <msp430.h> 

#define LED    BIT0
#define BTN    BIT1

/**
 * main.c
 */
int main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
	P1DIR |= LED;
	P1DIR &= ~BTN;
	P1OUT &= BTN | LED; // set as pull-down and LED initially off

	P1REN = BTN; // enable pull-down resistor

	while(1) {
	if((P1IN & BTN) != 0)
	    P1OUT ^= LED;
	}

	return 0;
}

Thanks in advance.

**Attention** This is a public forum