Codifo lounchpad
Enviado por martin7531 • 3 de Abril de 2017 • Tutorial • 656 Palabras (3 Páginas) • 194 Visitas
/**
* APLICACIÓN EJEMPLO KIT MSP-EXP430G2
* Plintec Ltda
* 2012 - 2013
*
* Realiza el incremento de un contador cada vez que el usuario presiona el pulsador S2
* Cada vez que el contador se incrementa, se prenden los leds de acuerdo a:
* - Si el valor del contador es múltiplo de 2 se prende el led rojo
* - Si el valor del contador es múltiplo de 4 se prende el led verde
* - En caso de que el valor no sea muliplo se apaga el led respectivo
* Cada vez que se realiza un incremento, se envia el valor por RS-232 configurado a 9600bps
*
* ==============================================================
* | Identificador | Puerto | Descripción | Posicion Bit |
* ==============================================================
* | LED1 | P1.0 | Led Rojo | BIT0 |
* | LED2 | P1.6 | Led Verde | BIT6 |
* | S2 | P1.3 | Pulsador | BIT3 |
* | TX UART | P1.2 | Tranmision UART | BIT2 |
* ==============================================================
*
*/
#include <msp430.h>
/**
* Envia el valor del contador al PC
*/
void enviarValorPC(char valorContador);
/**
* Envia un digito a la UART
*/
void enviarDigitoUART(char digito);
/**
* Programa Principal
*/
int main(void)
{
char valorPulsador = 0;
char valorContador = 0;
// Apaga el Watchdog Timer
WDTCTL = WDTPW | WDTHOLD;
// Configura el DCO a una frecuencia de 1MHz
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
// Inicializa pines de Leds como salida y pin de pulsador como entrada
P1DIR = 0x41;
// Inicializa Leds Rojo y Verde apagados
P1OUT = 0x00;
// Habilita la resistencia Pull-Up del Pulsador S2
P1REN |= BIT3;
P1OUT |= BIT3;
// Habilita el pin UCA0TXD como salida
P1DIR |= BIT2;
// Para los pines anteriores, configura la UART como el periferico seleccionado
P1SEL |= BIT2;
P1SEL2 |= BIT2;
// Selecciona el reloj SMCLK como el reloj de la UART
UCA0CTL1 |= UCSSEL_2;
// Configura la frecuencia de 9600 bps para la comunicacion serial
UCA0BR0 = 104;
UCA0BR1 = 0;
// Sin modulación configurada
UCA0MCTL = 0;
// Inicializa la USCI
UCA0CTL1 &= ~(UCSWRST);
// Realiza un ciclo infinito
while(1)
{
// Espera
...