Está en la página 1de 2

#include <msp430.

h>
#include "library.h"
/*
* main.c
*/
void main(void) {
dormir_perro();
config_comunicacion(4800,1,1);
while(1){
envia_comunicacion(leer_adc(3));
}
}
/*
* library.h
*
* Created on: 11/02/2015
*
Author: PATRICIO_
*/
void dormir_perro(void);
void config_comunicacion(int velocidad,int bit_paro,int lmsb);
void envia_comunicacion(int datos);
int leer_adc(int canal);
/*
* funciones1.c
*
* Created on: 11/02/2015
*
Author: PATRICIO_
*/
#include <msp430.h>
#include "library.h"
void dormir_perro(void){
WDTCTL = WDTPW | WDTHOLD;
}
void config_comunicacion(int velocidad,int bit_paro,int lmsb){
P1SEL = BIT1 + BIT2;//ACTIVAR LAS FUNCIONES PEREFERICAS (Tx Y Rx)
P1SEL2= BIT1 + BIT2;
if(velocidad==4800){
UCA0CTL1 |= UCSSEL_1; //SELECCIONAR EL RELOJ
UCA0BR0 = 6;//4800
UCA0MCTL = UCBRS0 + UCBRS1 + UCBRS2;//7
}
if(bit_paro==2){
UCA0CTL0 |= UCSPB;
}
if(lmsb==2){
UCA0CTL0 |= UCMSB;
}
UCA0CTL1 &= ~UCSWRST; //INICIALIZACION MAQUINA DE ESTADOS
IE2 |= UCA0TXIE; //HABILITAR INTERRUPCIONES Tx
__bis_SR_register(GIE);
}
void envia_comunicacion(int datos){
if(datos<150){

UCA0TXBUF=48;
}
if(datos>=150 && datos<470){
UCA0TXBUF=49;
}
if(datos>=780){
UCA0TXBUF=51;
}
}
int leer_adc(int canal){
ADC10CTL0 = ADC10ON ;//ADC Encendido
ADC10CTL1 = INCH_1*canal;//Selecciona el canal
ADC10CTL0 |= ENC + ADC10SC;//Hab e inicia
_delay_cycles(100);//Funcion delay_cycles:Tiempo necesar
io para que la adc comienze a trabaja
return ADC10MEM;
}
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCIAB0TX_ISR(void)
{
IFG2 &= ~UCA0TXIFG;
}

También podría gustarte