13. Descripción código programación

Anuncio
13. Descripción Código de Programación
El código de programación como ya se ha dicho en capítulos anteriores se ha
realizado en lenguaje C.
A continuación se adjunta una tabla con todas las funciones realizas, la
explicación se encuentra comentada en el anexo donde se encuentra el código, por lo
que en este capitulo sólo se describirá aquellos aspectos más importantes de la
funcionalidad del código.
void USART_Init(unsigned int ubrr)
void USART_Transmit( unsigned char data )
unsigned char USART_Receive( void )
void USART_transmit_string(unsigned char cadena[])
void USART_transmit_string_sin(unsigned char cadena[])
void modifica_buffer (unsigned char caracter)
void comprueba (void)
void cambio_modo (void)
void cierra_comunicacion (void)
void comprueba_temperatura (void)
void comprueba_ber (void)
void comprueba_txpower (void)
void comprueba_rssi (void)
void comprueba_ping (void)
void configura_ADC (void)
void activa_conversion_ADC (void)
void bajo_comsumo (void)
void desactiva_bajo_consumo (void);
void envia_registros_contadores (void)
void EEPROM_write_block (void);
void EEPROM_read_block_wt12 (int wt12);
void EEPROM_write(unsigned int uiAddress, unsigned char ucData);
void EEPROM_read_block (void);
unsigned char EEPROM_read(unsigned int uiAddress);
void conexion (void);
void conexion_wt12 (int wt12);
unsigned char log_cadena (unsigned char cadena[]);
int compara_cadena (unsigned char cadena1[], unsigned char cadena2[]);
int compara_cadena_n (unsigned char cadena1[], unsigned char cadena2[], unsigned
char n);
13.1. Comunicación Serie
La comunicación serie se realiza a través de varias funciones, la funcionalidad
de dichas funciones se describe a continuación.
•
USART_Init: Inicialización de la UART, configurando los registros de
funcionamiento para conseguir una comunicación serie a 38400 baud, sin
control de flujo, 8 bits de datos y 1 bit de stop. Se habilita las interrupciones por
recepción de un nuevo carácter.
•
•
void USART_Transmit: transmisión de un carácter.
void USART_transmit_string(unsigned char cadena[]): transmisión de una
cadena de caracteres. Al final de la cadena se envía el carácter fin de línea, para
que iWRAP lo entienda como un carácter.
•
void USART_transmit_string_sin(unsigned char cadena[]): Igual que la
anterior pero no envía el carácter de fin de línea.
•
modifica_buffer: Esta función es de gran importancia debido a que su
funcionalidad es modificar el buffer de entrada de carácter cada vez que un
nuevo carácter se ha recibido.
•
Además existe la rutina de atención de interrupción que se ejecuta cada vez que
un nuevo carácter se recibe. Esta rutina básicamente lo que hace el llamar a la
función modifica_buffer para realizar la actualización del buffer de entrada.
13.2. Escritura/Lectura de Registro de los contadores
Debido a la importancia que tiene el contenido de los registros de los contadores
para la funcionalidad del sistema, estos son escritos en memoria no volátil EEPROM.
Es decir cada vez que se escriban nuevos registros se deberá actualizar el contenido de
la memoria y para enviar la información de los registros al teléfono se harán lecturas de
memoria.
Las funciones que rigen el comportamiento son:
•
EEPROM_write: Escribe un carácter en la EEPROM en la posición de
memoria que se le pasa.
•
EEPROM_read: Lee la posición de la EEPROM que se le pasa como
dirección.
•
EEPROM_write_block: Escribe un bloque complete de direcciones de la
EEPROM, se le pasa cuantas posiciones de memoria se quien leer.
•
EEPROM_read_block: Igual que la función anterior pero para la operación de
lectura.
13.3. Conversión Analógica Digital
Estas funciones se encargan de realizar la conversión A/D para poder
monitorizar el nivel de batería del sistema.
•
activa_conversion_ADC: Configura los registros del convertidor del micro
para utilizar el canal adecuado para la conversión, así como adecuar el reloj del
sistema para que el resultado de la conversión sea satisfactorio. En esta rutina se
activa el enable de permiso de interrupción cuando se finalice una conversión.
•
La rutina de atención de interrupción se ejecutará cada vez que se termine una
conversión. En esta rutina se hace la conversión de la variable entero en la que
se almacena el valor medido (ya que el resultado se encuentra en un registro de
16 bits) a una cadena para poder así enviarla por la comunicación serie
Bluetooth que se mantiene abierta con el teléfono. Una vez realizada la
conversión y enviado los datos, se deshabilita el convertidor para evitar nuevas
conversiones.
13.4. Cambio de modo de funcionamiento
•
cambio_modo: Esta función ejecuta la secuencia de cambio de funcionamiento
del funcionamiento de iWRAP. Como se comento anteriormente el sistema
puede funcionar de dos modos, en modo comandos o en modo datos.
13.5 Modos de Bajo consumo
Estas funciones se encargan de permitir que el dispositivo entre y salga de modo
de bajo consumo.
•
bajo_comsumo: Activa el bajo consumo.
•
desactiva_bajo_consumo: Desactiva el bajo consumo
Descargar