Referencia del Archivo firmware_irele485-628.c

Este fichero contiene el cuerpo principal del Firmware del
dispositivo auxiliar satélite de la iACD V1.0.4. denominado iRELE485-628. Más...

#include <16F628A.h>

Ir al código fuente de este archivo.

Definiciones

#define DRIVER_RELE   PIN_B4
#define TX_485_ENABLE   PIN_B5
#define bytes_for_USART_buffer   12
 Establece el número de bytes de longitud del buffer de la USART.

Funciones

void USART_activa_tx (void)
 Abre el canal RS485 para transmitir.
void USART_activa_rx (void)
 Abre el canal RS485 para recibir.
void USART_add_to_buffer (char c)
 Inicializa el Buffer de la USART.
void interrupt_service_rutine_rda (void)
 Interrupción por : Recepción del Canal Serie.
void main (void)
 Constituye el núcleo principal del sistema.

Variables

const char VERSION [] = "1.0.0\0"
 Versión del Firmware.
const char WhatAmI = 'R'
 Identificador de tipo de dispositivo: 'R' Relé.
const char WhoAmI = '1'
 Identificador de dispositivo.
const char Command_Execute = 'X'
 Comando que indica ejecución de acción : Activar Relé.
const char end_of_transmit = '!'
 Carácter que indica fin de transmisión (no buffereable).
static char USART_buffer [bytes_for_USART_buffer]
 Buffer de la USART.
static int8 USART_nextRec
 Indice del Buffer de la USART.
int8 Command
 Comando válido para ejecutar.


Descripción detallada

Este fichero contiene el cuerpo principal del Firmware del
dispositivo auxiliar satélite de la iACD V1.0.4. denominado iRELE485-628.

Integra todos los subsistemas y funciones implementados.
Source para el compilador CCS C v.3.242

Microprocesador : 16F628A (18 pines PDIP)

Fuses utilizados:

Autor:
Diego Márquez García-Cuervo
<http://picmania.garcia-cuervo.net>
Versión:
1.0.0.A

Definición en el archivo firmware_irele485-628.c.


Documentación de las definiciones

#define DRIVER_RELE   PIN_B4

Pin accionador del Relé número 1

Definición en la línea 51 del archivo firmware_irele485-628.c.

#define TX_485_ENABLE   PIN_B5

Pin que habilita la transmisión por el canal RS485

Definición en la línea 58 del archivo firmware_irele485-628.c.


Documentación de las funciones

void main ( void   ) 

Constituye el núcleo principal del sistema.

Devuelve:
void.

Definición en la línea 211 del archivo firmware_irele485-628.c.

00211                 {
00212 
00213    setup_oscillator(OSC_4MHZ);
00214    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
00215    setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
00216    setup_timer_2(T2_DISABLED,0,1);
00217    setup_comparator(NC_NC_NC_NC);
00218    setup_vref(FALSE);
00219    port_b_pullups(False);
00220    set_tris_b(0b00000010);
00221    output_low(DRIVER_RELE);
00222    delay_ms(100);
00223 
00224    USART_nextRec = 0;
00225    Command = 0x00;
00226 
00227    USART_activa_rx();
00228    delay_ms(333);
00229 
00230    enable_interrupts(global);
00231    enable_interrupts(int_rda);
00232 
00233    USART_activa_tx();
00234    printf("[iRELE485-628] v.%s\r\n",version);
00235    USART_activa_rx();
00236 
00237    do{
00238 
00239       if(Command==0x01){
00240          Command =0x00;
00241 
00242          USART_activa_tx();
00243          printf("R%cA%c\r\n",WhoAmI,end_of_transmit);
00244          USART_activa_rx();
00245 
00246          output_high(DRIVER_RELE);
00247          delay_ms(2000);
00248          output_low(DRIVER_RELE);
00249        }
00250 
00251    } while(true);
00252 }

void USART_activa_rx ( void   ) 

Abre el canal RS485 para recibir.

Devuelve:
void

Definición en la línea 146 del archivo firmware_irele485-628.c.

00146                           {
00147   delay_ms(5);
00148   output_low(TX_485_ENABLE);
00149   delay_ms(1);
00150 }

void USART_activa_tx ( void   ) 

Abre el canal RS485 para transmitir.

Devuelve:
void

Definición en la línea 138 del archivo firmware_irele485-628.c.

00138                           {
00139   output_high(TX_485_ENABLE);
00140   delay_ms(5);
00141 }

void USART_add_to_buffer ( char  c  ) 

Inicializa el Buffer de la USART.

Recoge el último carácter recibido desde la USART sobre USART_buffer e incrementa en 1 el índice USART_nextRec.

Si el carácter recibido es Retorno de carro '\r' ó 0x0D comprueba identidad de dispositivo y comando recibido

Devuelve:
void

Definición en la línea 160 del archivo firmware_irele485-628.c.

00160                                 {
00161 
00162    USART_buffer[USART_nextRec++]=c;
00163    if(USART_nextRec==bytes_for_USART_buffer){
00164       USART_nextRec=0;
00165    }
00166 
00167    if(c==end_of_transmit){
00168       --USART_nextRec;
00169       if(USART_buffer[USART_nextRec-3]==WhatAmI){
00170          if(USART_buffer[USART_nextRec-2]==WhoAmI){
00171            if(USART_buffer[USART_nextRec-1]==Command_Execute){
00172               Command=0x01;
00173            }
00174          }
00175       }
00176       USART_nextRec = 0;
00177    }
00178 }


Generado el Thu Oct 25 19:37:53 2007 para Firmware para RELE485-628 por  doxygen 1.5.3