MSP430 enciende leds al acercar el dedo

Hola a todos, hace poco me compre el Launchpad de TI (kit de MSP430), hoy por primera vez lo estuve usando. Me pasó algo realmente raro a mi entender, armé un par de programas simples con pulsadores y leds, pero en vez de activarse los leds con el pulsador, se me activaban al acercar el dedo al micro o a los pines. Los leds son los que vienen en la placa de desarrollo. Después con una punta de metal toque un pin, el cual tenia que poner en 1 para activar el led, y el led se encendia. La verdad no se que puede ser o que estoy obviando... Si a alguien le paso algo similar espero algun dato de como seguir, gracias de antemano!
 
quizás has olvidado habilitar los resistores de "puesta en alto/bajo" de cada pin de entrada del MSP
 
Última edición:
Hola a todos, gracias por las respuestas. Tengo la versión 1.5. Lo probé en la notebook y anduvo bien la verdad no sé qué le pasa en la pc, será que no tengo puesta a tierra? el gabinete, y el puerto usb tiran la patadita si lo toco descalzo... en fin ahora bien parece, gracias a todos por las respuestas. Ahora no puedo hacer funciaron las interrupciones del P1, pero bueno seguiré intentando jaja saludos!
 
Me alegro que hayas solucionado el problema... no está por demás, dejo algunos ejemplos de programas en C, IAR y CCS para aprender a usar el launchpad, espero les sirva... Saludos

 

Adjuntos

  • MSP430F20xx Code Examples.rar
    236 KB · Visitas: 56
Gracias Daniel! Ahora les pego una hojeada!



Retomo, el problema persiste. Pongo este programa sencillo:

Código:
#include <msp430g2553.h>

#define LED0 BIT0
#define LED1 BIT6
#define BUTTON BIT3



int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= (LED0 + LED1); // Set P1.0 to output direction
// P1.3 must stay at input
P1OUT = LED0; // set P1.0 to 0 (LED OFF)
P1IE |= BUTTON; // P1.3 interrupt enabled

P1IFG = 0; // P1.3 IFG cleared

__enable_interrupt(); // enable all interrupts
for(;;)
{}
}


// Port 1 interrupt service routine
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P1OUT ^= (LED0 + LED1); // P1.0 = toggle
P1IFG = 0; // P1.3 IFG cleared
}


Y la interrupción no ocurre cuando presiono el botón, sino cuando toco el pin 1.3, o la parte metalica del costado del botón. La verdad estoy por darme por vencido jaja...
 
Última edición por un moderador:
No estoy muy acostumbrado a la programación en C, pero si te puedo decir que el problema tiene más aspecto de ser de hardware. Con algún ohmetro revisa que el switch cierre al momento de presionarlo, en lo personal me parece que los botoncitos que trae el launchpad no son tan de buena calidad (todo sea por mantenerlo barato). Otra cosa, en tu programa no veo una rutina de temporización para eliminar los rebotes de los botones, puede que la causa del error también se derive de allí.

Revisa esos detalles y nos comentas
 
falta configurar algunas cosas, pull up, tipo de pendiente de interrupción, y algunas cositas mas.

otra cosa, cuando vayas a oprimir el pulsador, con la otra mano toca la masa de la plaqueta, para equilibrar el potencial.

saludos, a ver si anda
 
Muchas gracias a todos, lo solucione. Se sigue activando cuando toco el pin con cualquier cosa conductora, pero ahora tambien con el bendito botón! El problema era del Pullup, ya que yo lo activaba pero si no ponía el P1OUT de ese pin en 1 no servía. Gracias por la mano!
 
sera posible que alguien me pueda ayudar pues tengo la revision 1.5 de launchpad pero no me trabaja con el programa energia , dudaba que la tarjeta estuviera mala pero realice una prueba con IAR y alli si logra comunicarse, alguna sugerencia, gracias
 
para los que tengan algún problema con el software energía , en la ultima versión hay que colocar los archivos en el directorio raíz y ya trabaja como que estuvieran realizándolo con un arduino.
 
Atrás
Arriba