Autor Tema: como asigno posicion del bite en el byte a pines?  (Leído 4588 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado omix

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 244
Re: como asigno posicion del bite en el byte a pines?
« Respuesta #15 en: 09 de Abril de 2006, 13:28:44 »
Hola fastyx, el comando analogo al printf para leer datos es el scanf.

Un saludo.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: como asigno posicion del bite en el byte a pines?
« Respuesta #16 en: 09 de Abril de 2006, 13:58:32 »
Hola omix, busqué el comando scanf en CCS y no apareció, ¿qué versión usas?

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: como asigno posicion del bite en el byte a pines?
« Respuesta #17 en: 09 de Abril de 2006, 22:21:25 »
AMIGOS: con este programa que hice consegui mandar por terminal del proteus 1 byte y en funcion de los cambios de los interruptores ,que refleje los cambios en la terminal

#include <16F628A.h>
#fuses NOWDT,INTRC_IO, PUT, NOPROTECT, NOBROWNOUT, NOMCLR, LVP, NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=9,stream=debug)

#byte porta = 0x05
#byte portb = 0x06

#byte trisa = 0x85
#byte trisb = 0x86



#bit s1 = porta.5
#bit s2 = porta.6
#bit s3 = porta.7
#bit s4 = porta.1
#bit s5 = porta.2
#bit s6 = porta.3
#bit s7 = porta.4
#bit s8 = porta.0


void main()
{
int8 var ;

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   trisa = 0b11111111 ;
   trisb = 0b00111000 ;

while (true)

{

printf("%u\r",var);delay_ms (50);
if (s1==1)
{
bit_set(var,1);
printf("%u\r",var);delay_ms (50);
}
else
{
bit_clear(var,1);
printf("%u\r",var);delay_ms (50);

}
   if (s2==1)
   {
   bit_set(var,2);
   printf("%u\r",var);delay_ms (50);
   }
   else
   {
   bit_clear(var,2);
   printf("%u\r",var);delay_ms (50);
   }
  printf("%u\r",var);delay_ms (50);
if (s3==1)
{
bit_set(var,3);
printf("%u\r",var);delay_ms (50);
}
else
{
bit_clear(var,3);
printf("%u\r",var);delay_ms (50);

}
   if (s4==1)
   {
   bit_set(var,4);
   printf("%u\r",var);delay_ms (50);
   }
   else
   {
   bit_clear(var,4);
   printf("%u\r",var);delay_ms (50);
   }

   printf("%u\r",var);delay_ms (50);
if (s5==1)
{
bit_set(var,5);
printf("%u\r",var);delay_ms (50);
}
else
{
bit_clear(var,5);
printf("%u\r",var);delay_ms (50);

}
   if (s6==1)
   {
   bit_set(var,6);
   printf("%u\r",var);delay_ms (50);
   }
   else
   {
   bit_clear(var,6);
   printf("%u\r",var);delay_ms (50);
   }

   printf("%u\r",var);delay_ms (50);
if (s7==1)
{
bit_set(var,7);
printf("%u\r",var);delay_ms (50);
}
else
{
bit_clear(var,7);
printf("%u\r",var);delay_ms (50);

}
   if (s8==1)
   {
   bit_set(var,0);
   printf("%u\r",var);delay_ms (50);
   }
   else
   {
   bit_clear(var,0);
   printf("%u\r",var);delay_ms (50);
   }
}
}

ahora me falta hacer la recepcion del pic 2 pero me encuentro con el problema de los 2 pic y el proteus....
otra cosa: como puedo ver en al terminal en lugar de los valores 0 a 255 del byte la notacion binaria ya que en este caso quiero ver como cambian los bit y que posicion ocupan

desde ya gracias(la verdad yo tampoco encontre scanf :shock:)