Commit 5fa1a04d authored by Jesus Fabian Calixto Mendez's avatar Jesus Fabian Calixto Mendez
Browse files

se agrega cambios para reentrega

parent 0490e337
......@@ -28,14 +28,18 @@ static uint8_t buffer_Z[BUFFER];
void recopilarDatos(int16_t *ejeX, int16_t *ejeY, int16_t *ejeZ);
/**
* @brief funcion que procesa los datos del acelerometro
* @param int* temp: puntero con la temperatura actual.
* @param int* horas: puntero con la hora actual.
* @param int* minutos: puntero con la minutos actuales.
* @param int* segundos: puntero con la segundos actuales.
* @brief funcion que recopila los datos del acelerometro
* @param int16_t* ejeX: eje X del acelerometro.
* @param int16_t* ejeY: eje Y del acelerometro.
* @param int16_t* ejeZ: eje Z del acelerometro.
*
*/
void procesarDatos(uint8_t *resultado);
/**
* @brief funcion que procesa los datos del acelerometro
* @param int16_t* resultado: puntero resultado de subidad por escaleras.
*
*/
#endif /* INCLUDE_ALGORITMO_H_ */
......@@ -17,15 +17,30 @@
#ifndef INCLUDE_TIMER_HW_H_
#define INCLUDE_TIMER_HW_H_
// Rutina de inicializacion del timer hardware usando el crystal
/**
* @brief funcion de inicializacion del timer hardware usando el crystal.
*
*/
void config_timer_crystal(void);
// Rutina de inicializacion del timer hardware usando el VLO
/**
* @brief funcion de inicializacion del timer hardware usando el VLO.
*
*/
void config_timer_VLO(void);
// Rutina de inicializacion del timer A
// Rutina
/**
* @brief funcion de inicializacion del timer A.
*
*/
void vInitTimerA(void);
/**
* @brief funcion de verificacion, seteo de Flag
* @param int* falg_timer: puntero de bandera.
*
*/
void setFlagTimer(unsigned int *flag_timer);
#endif /* INCLUDE_TIMER_HW_H_ */
/*
* @algoritmo.c
*
*
* Proyecto final
* Modulo Round Robin OBTENER DATOS POR UART
*
* Este modulo agrupa las funciones de manejo del timer
/**********************************************************
* @file algoritmo.c
* @brief Modulo unciones recopilar datos del sensor eje Y y Z
* procesar datos y hacer calculos estadisticos
*
* @version 1.0
* @author Leoncio Rios, Jesus Calixto
* Version inicial
* @date 20 de Mayo 2022
* @date 28 de Mayo 2022
*
**********************************************************/
......
......@@ -29,7 +29,7 @@ void vInitTimerA(void)
TACCTL0 |= CCIE; // Habilitar la interrupcion para CCR0. -Pag.372 de la familia
TACTL = TASSEL_1 + ID_0 + MC_1; // Selecciono ACLK, divisor 1, y Modo UP (timer)
TACCR0 = tiks; /// Valor a cargar en TACCR0, segun el oscilador seleccionado, para dar interrupcion cada 250ms.
TACCR0 = tiks; // Valor a cargar en TACCR0, segun el oscilador seleccionado, para dar interrupcion cada 250ms.
}
void setFlagTimer(unsigned int *flag_timer)
......@@ -43,19 +43,10 @@ void setFlagTimer(unsigned int *flag_timer)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void vTimerAInterrupt(void)
{
// inc_time(250);
numm++;
contTimer++;
*Tflag = 1;
// if(contTimer >= SEL_tiks){
// *Tflag = 1;
// contTimer = 0;
// LPM3_EXIT;
// }
// Conmuto el led
// P1OUT ^= BIT0;
} // Timer ISR
......@@ -65,10 +56,8 @@ void config_timer_crystal(void)
// slau144j.pdf, p280
// The LFXT1 oscillator supports ultra-low current consumption using a 32768-Hz watch crystal in LF mode (XTS = 0)
// XTS = 0
BCSCTL1 &= ~(XTS);
// LFXT1Sx = 00, 32768-Hz crystal on LFXT1
BCSCTL3 |= LFXT1S_0;
tiks = 8192 - 1; // (32768/4) - 1 valor para 250 ms con el crystal
......@@ -82,9 +71,8 @@ void config_timer_VLO(void)
// Usa una frecuencia de 12kHz
// VLOCLK source is selected by setting LFXT1Sx = 10 when XTS = 0.
// XTS = 0
BCSCTL1 &= ~(XTS);
// LFXT1Sx = 10, bits 4 y 5
BCSCTL3 |= LFXT1S_2;
tiks = 120 - 1; // (12000/4) - 1 valor para 250 ms con el VLO
......
......@@ -38,8 +38,7 @@ void uart_init(unsigned int *pt_fin)
{
/*configuramos UART linea 640 msp430g2553.h capitulo 15 manual de la familia*/
// UCA0CTL1 = 1;
// UCSWRST = 1; // Tiene que estar en uno para indicar que esta en reset y que pueda funcionar
// Tiene que estar en uno para indicar que esta en reset y que pueda funcionar
UCA0CTL1 |= UCSWRST; // Configuracion de inicializacion para la UART Pag. 413 de la familia //reset enable
P1SEL |= BIT1 | BIT2; // Pagina 43 del datasheet se pide que el bit 1 y 2 del PINSEL esten en 1, el 0 se configura solo
......@@ -47,7 +46,6 @@ void uart_init(unsigned int *pt_fin)
UCA0CTL1 |= UCSSEL_2; // seleccionamos que vamos utilizar ACLk seleccionamos que se va a transmitir MSB primero
// UCA0CTL0 = 0 //es zero porque en la pagina 431 de la familia se configura conforme a lo que nos pide el proyecto (
// El m�dulo de comunicaci�n UART deber� configurar la misma en 9600 bps, 8 bits de datos, sin paridad y un
// bit de parada (8N1).
UCA0CTL0 = 0; // UCSYNC_0 + UCMODE_0 + UCSPB_0 + UCMSB_0 + UCPEN_0;
......@@ -63,7 +61,6 @@ void uart_init(unsigned int *pt_fin)
UCA0CTL1 &= ~UCSWRST; // software reset disable
UC0IE |= UCA0RXIE; // Habilitamos las interrupciones en UCA0RXIE (RX) para resivir datos, UC0IE no esta en la hoja de datos pero existe
// IE2 = 0 // Desabilitamos las interrupciones del registro 2, pag. 433 de la familia (UCA0TXIFG y UCA0RXIFG)
}
/****************************************************************************************************
......@@ -87,13 +84,13 @@ void transmitir_TX(char *mensaje)
**************************************************************/
void copiar_ext(char *buff_ext)
{
// UC0IE &= ~UCA0RXIE; //deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
// deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
__disable_interrupt();
strcpy(buff_ext, &buffer_RX[0]);
__enable_interrupt();
// UC0IE |= UCA0RXIE; //habilitamos interrupciones para RX
// habilitamos interrupciones para RX
}
/*****************************************************
......@@ -114,8 +111,7 @@ __interrupt void registro_vacio_TX(void)
{
buffer_TX[i + 1] = '\t'; // asignamos fin de linea
UCA0TXBUF = buffer_TX[i + 1];
// buffer_TX[i+1] = '\r'; //le asignamos enter
// UCA0TXBUF = buffer_TX[i+1];
i = 1;
UC0IE = ~UCA0TXIE; // deshabilitamos interrupcion de transmision
}
......@@ -133,7 +129,7 @@ __interrupt void recibi_mensaje_RX(void)
buffer_RX[j] = UCA0RXBUF; // PASO 1 - se almacena el dato de recepcion el el buffer_RX
// UC0IE &= ~UCA0RXIE; //deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
// deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
__disable_interrupt();
if (buffer_RX[j] != '\r') // Se indica que con '\r' (este valor lo da la tecla enter) que el mensaje esta completo y vuelve al principio el cursos
j++; // nos movemos al siguiente lugar del buffer de recepcion
......@@ -149,7 +145,6 @@ __interrupt void recibi_mensaje_RX(void)
}
__enable_interrupt();
// UC0IE |= UCA0RXIE;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
......@@ -172,9 +167,6 @@ void add_XYZ(int *accelX, int *accelY, int *accelZ)
{ // a�ade la temperatura al buffer_temp en caracter char
__disable_interrupt();
// intTOchar(accelX, &buffer_temp[0], &buffer_temp[1], &buffer_temp[2], &buffer_temp[3], &buffer_temp[4]);
// buffer_temp[5] = ',' ;
intTOchar(accelY, &buffer_temp[0], &buffer_temp[1], &buffer_temp[2], &buffer_temp[3], &buffer_temp[4]);
......@@ -186,7 +178,6 @@ void add_XYZ(int *accelX, int *accelY, int *accelZ)
buffer_temp[12] = '\n';
buffer_temp[13] = '\0';
__enable_interrupt();
//*local_EOL = 1;
}
/*************************************************************
* funcion que copia el buffer de temperatura
......@@ -195,9 +186,9 @@ void add_XYZ(int *accelX, int *accelY, int *accelZ)
void copiar_temp(char *buff_temp)
{
// UC0IE &= ~UCA0RXIE; //deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
// deshabilitamos interrupciones de recepcion para no tener problemas de datos compartidos
__disable_interrupt();
strcpy(buff_temp, &buffer_temp[0]);
__enable_interrupt();
// UC0IE |= UCA0RXIE; //habilitamos interrupciones para RX
// habilitamos interrupciones para RX
}
......@@ -38,7 +38,6 @@ void itoa(int value, char *str)
while (value /= BASE);
if (sign < 0)
*wstr++ = '-';
//*wstr='\0';
// Reverse string
strreverse(str, wstr - 1);
}
......
#include <msp430.h>
#include <string.h>
//#include<uart.h>
#include <timer_hw.h>
//#include"utils.h"
#include <i2c.h>
#include "imu.h"
#include <algoritmo.h>
//#include<stdint.h>
#define P0 BIT0 //LED VERDE
#define P0 BIT0 // LED VERDE
/********************************************
* VARIABLES I2C *
......@@ -26,15 +24,14 @@ uint8_t contador = 0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
/********************************************
/********************************************
* CONFIGURACION DE LEDS *
********************************************/
P1DIR = 0; // Pongo todos los pines como entradas
P1DIR = 0; // Pongo todos los pines como entradas
P1DIR |= (BIT0); // Ponemos el pin 1.0 como salida
P1OUT = 0xff;
......@@ -66,8 +63,6 @@ void main(void)
P1DIR = 0; // Pongo todos los pines como entradas
P1DIR |= LED1; // Ponemos el pin 1.0 como salida
// config_timer_crystal(); //inicializamos el timer hardware crystal, se agrega en timer_hw.h
config_timer_VLO(); // inicializamos el timer hardware VLO, se agrega en timer_hw.h
vInitTimerA(); // se inicializa el timer A
......
......@@ -5,8 +5,7 @@
#include "utils.h"
#include <i2c.h>
#include "imu.h"
//#include <algoritmo.h>
//#include<stdint.h>
#define LED1 (0x0001) // Seleccionamos el pin 1.0
/********************************************
......@@ -62,8 +61,6 @@ void main(void)
P1DIR = 0; // Pongo todos los pines como entradas
P1DIR |= LED1; // Ponemos el pin 1.0 como salida
// config_timer_crystal(); //inicializamos el timer hardware crystal, se agrega en timer_hw.h
config_timer_VLO(); // inicializamos el timer hardware VLO, se agrega en timer_hw.h
vInitTimerA(); // se inicializa el timer A
......@@ -99,10 +96,6 @@ void main(void)
__enable_interrupt();
contt++;
banderaUART = 1;
// algoritmo(accel.x, accel.y, accel.z);
// accelX = accel.x ; //aceleracion en x
// accelY = accel.y ; //aceleracion en y
// accelZ = accel.z ; //aceleracion en z
}
// UART Si llega informacion se ejecuta
......@@ -114,9 +107,5 @@ void main(void)
transmitir_TX(&buffer_temp[0]); // mandamos los datos
contUART++;
}
// if((banderaTimer == 0)&&(EOL == 0)){
// LPM3;
//}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment