 
#ifndef APPmain_H
#define	APPmain_H

#include <xc.h> // include processor files - each processor file is guarded.  
#include "tmr0.h"


#ifdef	__cplusplus
extern "C" {
#endif /* __cplusplus */
    
////////////////////////////////////////////////////////////////////////////////////////////////////
//las direcciones se expresaron en exadecimal para que seA mas facil la visulizacion
//en el simulador, bien se podrian haber definido en decimal o binario
//lo unico que estoy haciendo aca es dar un nombre a la direccion de comienzo de
//escritura o lectura en EE para cada variable
#define DIREE_ST 0X00 //direccion en EE de la variable c1 ocupa 1byte
#define DIREE_RO 0X01 //direccion en EE de la variable c1 ocupa 1byte
#define DIREE_AZ 0X02 //direccion en EE de la variable c1 ocupa 1byte
#define DIREE_VE 0X03 //direccion en EE de la variable c1 ocupa 1byte
#define DIREE_NC 0X04 //direccion en EE de la variable c1 ocupa 1byte
#define DIREE_AT 0X05 //direccion en EE de la variable c1 ocupa 1byte
    
#define DIREE_DIR 0X06 //direccion en EE de la variable f1 ocupa 2byte
    
//las variables definidas con el sub indice 2 las utilizaremos para recuperar el dato de la EE
 unsigned char St=0;//variable de strobo
 unsigned char Ro=0;//variable de rojo
 unsigned char Az=0;//variable de azul
 unsigned char Ve=0;//variable de verde 
 unsigned char Nc=3;//variable numero de canales
 unsigned char At=1;//variable de automatico
 
 unsigned int  Dir=1; //defino una variable auxiliar para un contador
 
 unsigned char DmxMacro=0;
 unsigned char DmxFusion=0;
 unsigned char DmxVelocidad=0;
 unsigned char cntMenu=0;
 unsigned char Rod=0;
 unsigned char Azd=0;
 unsigned char Ved=0;
 unsigned char Tie=0;
 unsigned char AuxTramaDmx=0;

#define NUMERO_CANALES 30 //cantidad de canales del dispositivo
#define TOTAL_CANALES 512 //total de canales de la trama Dmx

unsigned char DatoRx=0;       //variable donde guardo el dato leido de la Usart
unsigned char DmxEstado=0; //variable de la maquina de estados
unsigned int  CanalInicio=0; //guardo canal de inicio seleccionado por DipSw u otro
unsigned char vTramaDmx[NUMERO_CANALES]; //vector donde guardo canales de trama
unsigned char iTramaDmx=0; //indice que utilizo para recorrer el vertor de tramaDmx
unsigned int  cntCanales=0;  //contador que lleva la cuenta de los 512 canales Dmx

#define CH0     0
#define CH1     1
#define CH2     2
#define CH3     3
#define CH4     4
#define CH5     5
#define CH6     6
#define CH7     7
#define CH8     8
#define CH9     9

#define CH10    10
#define CH11    11
#define CH12    12
#define CH13    13
#define CH14    14
#define CH15    15
#define CH16    16
#define CH17    17
#define CH18    18
#define CH19    19

#define CH20    20
#define CH21    21
#define CH22    22
#define CH23    23
#define CH24    24
#define CH25    25
#define CH26    26
#define CH27    27
#define CH28    28
#define CH29    29

unsigned char   cntStrobo=0xff;

//-----------------------------------------------
unsigned char R1=0;
unsigned char V1=0;
unsigned char A1=0;
unsigned char R2=0;
unsigned char V2=0;
unsigned char A2=0;
unsigned char R3=0;
unsigned char V3=0;
unsigned char A3=0;
unsigned char R4=0;
unsigned char V4=0;
unsigned char A4=0;
unsigned char R5=0;
unsigned char V5=0;
unsigned char A5=0;
unsigned char R6=0;
unsigned char V6=0;
unsigned char A6=0;
unsigned char R7=0;
unsigned char V7=0;
unsigned char A7=0;
unsigned char R8=0;
unsigned char V8=0;
unsigned char A8=0;
unsigned char R9=0;
unsigned char V9=0;
unsigned char A9=0;
unsigned char R10=0;
unsigned char V10=0;
unsigned char A10=0;


//-------------------------------------------------
 union
{unsigned char Flag;
   struct
    {
     unsigned fStrobo:1;
     unsigned fPeriodoRGB:1;
    };
}FLAGbits;

#ifdef	__cplusplus
}
#endif 

#endif

