Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: ...DaNiEl... en 24 Julio 2009, 17:39 pm



Título: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: ...DaNiEl... en 24 Julio 2009, 17:39 pm
Código:
/*Selector de secuencias*/
int cont=0,sc1,sc2,sc3;
void main()
{
ANSEL=0;
ANSELH=0;
TRISA=1; /*Entrada que cuenta los pulsos con un push button*/
TRISC=0; /*Configurado como salida para hacer la secuencia*/
while(1)
{
if(PORTA==1)
{
cont++;
if(cont>=3)
cont=0;
while(PORTA==1)
{
}
}
switch(cont)
{
case 1:
for(sc1=0;sc1<255;sc1++)
{
PORTC=sc1;
delay_ms(5);
}
break;
case 2:
for(sc1=255;sc1>0;sc1--)
{
PORTC=sc1;
delay_ms(5);
break;
case 3:
sc2=1;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2*2;
if(sc2==256)
sc2=1;
break;
case 4:
sc2=128;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2/2;
if(sc2==1)
sc2=128;
break;
}
}
}
}
}
}
/*PIC16F690*/
Me recomendarian hacerlo con la sentencia while en vez de for??? :huh:


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: h0oke en 24 Julio 2009, 17:47 pm
Veamos si entiendo...

Lo que necesitas es como un temporizador?

Por PORTA irían por ejemplo... los minutos, por PORTC los segundos... Ese efecto quieres lograr?


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: ...DaNiEl... en 24 Julio 2009, 17:50 pm
Veamos si entiendo...

Lo que necesitas es como un temporizador?

Por PORTA irían por ejemplo... los minutos, por PORTC los segundos... Ese efecto quieres lograr?

Ps yo utilizo el PORTA como una entrada la cual cada vez que le llegue un pulso cambia de secuencia; la secuencia sale en el PORTC; lo que pasa es que a la hora de simularlo solo saca una secuencia y no cambia si se le introduce un pulso en PORTA!!


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: h0oke en 24 Julio 2009, 17:54 pm
Aver, aver, aver...

Tienes una entrada de onda cuadrada con su respectiva frecuencia, tu quieres que por cada alto se active un pin del otro puerto, hasta que llegue a los 8 si mal no recuerdo, y luego al próximo alto(también podría ser bajo), vuelva a comenzar la secuencia?


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: ...DaNiEl... en 24 Julio 2009, 18:00 pm
Aver, aver, aver...

Tienes una entrada de onda cuadrada con su respectiva frecuencia, tu quieres que por cada alto se active un pin del otro puerto, hasta que llegue a los 8 si mal no recuerdo, y luego al próximo alto(también podría ser bajo), vuelva a comenzar la secuencia?

Sip, la entrada se podria decir que es PORTA.F0; yo quiero que por cada pulso que entre en ella, cambie a la proxima secuencia que puse en los "case" de mi sentencia switch, la cual se muestra en los pines del PORTC; pero al enviarle un pulso no cambia de secuencia, no se si es por algun error que haya puesto yo en alguno de los case o en algun for!!


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: h0oke en 24 Julio 2009, 18:17 pm
Bien, analizando tu code, no son necesarios tus "switchs". Otra cosa, pusiste PORTA==1, ¿?, tu PORTA es únicamente el pin de tu clock?

Yo en todo caso

Citar
while(1)
{
   if( PORTA.(X)==1)
   {
            cnt++;
            if(cnt<(cantidad pines + 1))
            PORTC=cnt;
            else
            cnt=0;  
   }
}

Se entiende la idea?


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: ...DaNiEl... en 24 Julio 2009, 18:24 pm
Bien, analizando tu code, no son necesarios tus "switchs". Otra cosa, pusiste PORTA==1, ¿?, tu PORTA es únicamente el pin de tu clock?

Yo en todo caso

Citar
while(1)
{
   if( PORTA.(X)==1)
   {
            cnt++;
            if(cnt<(cantidad pines + 1))
            PORTC=cnt;
            else
            cnt=0;  
   }
}

Se entiende la idea?

Ok... entendi tu idea, seria mucho mas facil si lo hiciera con while verdad!! es mas creo que quedaria mas pequeño... pero mi profesor insiste!! gracias!! probare hacer cambios en el codigo que ya tengo o si no creare uno nuevo!! Muchas gracias por tu ayuda!!

Saludos!!  :)  ;)


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: h0oke en 24 Julio 2009, 18:26 pm
Citar
while(1)
{
   if( PORTA.(X)==1)
   {
            cnt=0;
            while(cnt<(cantidadpines+1)
            {
                 PORTC=cnt;
                 cnt++;
            }  
   }
}


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: ...DaNiEl... en 24 Julio 2009, 18:59 pm
Código:
/*Selector de secuencias*/
int cont=1,sc1=0b00000001,sc2=0b10000000;
void main()
{
ANSEL=0;
ANSELH=0;
TRISA=1; /*Entrada que cuenta los pulsos con un push button*/
TRISC=0; /*Configurado como salida para hacer la secuencia*/
while(1)
{
if(PORTA==1)
{
cont++;
if(cont>=5)
cont=1;
while(PORTA==1)
{
}
}
switch(cont)
{
case 1:
PORTC=sc1;
sc1=sc1<<1;
if(sc1>128)
sc1=1;
break;
case 2:
PORTC=sc2;
sc2=sc2>>1;
if(sc2<1)
sc2=128;
break;
case 3:
PORTC=sc1;
sc1=sc1<<2;
if(sc1>128)
sc1=1;
break;
case 4:
PORTC=sc2;
sc2=sc2>>2;
if(sc2<1)
sc2=128;
break;
}
}
}

Jijiji!! solo queria poner el codigo ya corregido!! ya me funciona!! lo hice utilizando if y le agregue 4 secuencias diferentes!! gracias por tu ayuda!!


Título: Re: Selector de secuencias en Mikro C no cumple al simularlo!!
Publicado por: h0oke en 24 Julio 2009, 21:11 pm
De nada. Por suerte tu solo puedes solucionar tus problemas  ::)