ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Codifo lounchpad

martin7531Tutorial3 de Abril de 2017

656 Palabras (3 Páginas)213 Visitas

Página 1 de 3

/**

* 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 mientras se presiona el pulsador

do

{

valorPulsador = P1IN & BIT3;

}

while(valorPulsador != 0);

// Espera 50 ms y confirma nuevamente

_delay_cycles(50000);

// Confirma si realmente se ha presionado el pulsador

if((P1IN & BIT3) == 0)

{

// Espera a que se libere el pulsador

do

{

valorPulsador = P1IN & BIT3;

}

while(valorPulsador == 0);

// Espera 50 ms y confirma nuevamente

_delay_cycles(5000);

// Confirma si realmente se ha liberado el pulsador

if((P1IN & BIT3) != 0)

{

// Incrementa el contador

valorContado++;

// Verifica si el valor del contador en multiplo de 2

if((valorContador % 2) == 0)

{

P1OUT |= BIT0;

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (49 Kb) docx (14 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com