#include "main.h"
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
// TODO: USER CODE!!
printf("\n\r ON: ");
SET_TRIS_C(0x0F);
printf("\n\r **************** PRUEBAS ************************");
int8 va1[4]; //vector inicial
int8 g_post[4]; //vector destino
int8 t1; //tamaño vector inical
int8 t1_g; //tamaño vector destino
int8 cnt_p_vf=0; //pos wr en vector destino
int8 n_z_va1=0; //numero de ceros en v inicial
int8 n_en_v; //numero a wr en v destino
int8 pos_z; //posicon del cero en v inicial
int8 mi_n; // n ale del gen aleatorio
t1=sizeof(va1); // tamaño del vector
t1_g=sizeof(g_post); // tamaño del vector
ini_v_es(va1,t1); // inicia vector 1234
ini_v(g_post,t1_g,0); // inicia vector 0000
muestra_v(va1,t1); // muestra vector va1
while(t1!=0){
printf("\n\r ------- vector va1 -------R ");
muestra_v(va1,t1); // muestra vector
mi_n=genera_aleatorio(t1); // genera aleatorio
printf("\n\r num rnd: %d "mi_n); // muestra aleatorio
t1_g=sizeof(g_post); // tamaño del vector de guardado
printf("\n\r g_post size: %d"t1_g); // muestra tamaño
//ini_v(g_post,t1_g,0); // inicializa a 0 vector guarda posiciones
printf("\n\r ------- vector g_post -------1 ");
muestra_v(g_post,t1_g); // muestra vector g__post
n_en_v=guarda_n_v_v(va1,g_post,mi_n,cnt_p_vf); //guarda el numero de post en v
printf("\n\r ------- vector g_post -------2 ");
muestra_v(g_post,t1_g); // muestra vector con el valor cargado
cmp_n_v(n_en_v, va1,t1); // marca con cero el ale en v inicio
printf("\n\r ------- vector va1 -------3 ");
muestra_v(va1,t1); // muestra vector inicial
printf("\n\r ------------");
n_z_va1=cnt_0(va1,t1); // cnt n ceros en v inicial
pos_z=post_cero(va1,0,t1); // posicion del cero en v ini
printf("\n\r ini(0)pos del cero: %d"pos_z); // muestra posicion del cero
desplaza_0(va1,pos_z,t1); // desplaza cero 0123 -> 1230
printf("\n\r ------- vector va1 -------4 ");
printf("\n\r T1 tamaño: %d"t1); // muestra tamaño de v ini
printf("\n\r n_ ceros: %d"n_z_va1); // muestra n ceros de v ini
muestra_v(va1,t1); // muestra vector
n_z_va1=cnt_0(va1,t1); //-- cnt n ceros en v
t1=reduce_v(n_z_va1,t1); // reduce busqueda
printf("\n\r ------- vector va1 -------5 ");
printf("\n\r --- vector va1 --- "); // vector va1
muestra_v(va1,t1); // muestra vector va1 t1=0 => usar t1_g
printf("\n\r --- vector g_post --- "); // vector va1
muestra_v(g_post,t1_g); // muestra vector g_post_g
cnt_p_vf=cnt_p_vf+1; // inc post de guardado de vector
printf("\n\r ------- xxxxxxxxxx -------5 ");
}