Autor Tema: Problema con el manejo de bits en CCS  (Leído 1670 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Problema con el manejo de bits en CCS
« en: 16 de Diciembre de 2011, 14:48:29 »
Saludos. Estoy practicando CCS. Lo que hice es desarrollar los ejercicios de libro de assembler de PIC PALACIOS,pero en leguaje C.

Me quede atrapado en el Elemental_09. :5] :5]

 Haber si me hechan una ayudita.

Código: [Seleccionar]
//Por el Puerto C se obtiene el dato del Puerto A
//invirtiendo los bit pares. Los impares se dejan como en la entrada.

#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4M)
#use fast_io(a)
#use fast_io(c)
#byte PORTA=5
#byte PORTC=7

void main()
            {
            set_tris_a(0x3F);
            set_tris_c(0x00);
            PORTC=0x00;
            int impares;
            int pares;
            while(true)
                        {
                        impares=PORTA;
                        impares=impares&&0b10101010;//me quedo con los bit impares
                        pares=~PORTA;                     //complemento lo que entra por el PortA
                        pares=pares&&0b01010101;    //me quedo con los bit pares
                        #asm
                        movf  pares,0
                        iorwf impares,1      //esta parte lo hice en asm porque no me sale el OR                
                        #endasm
                        PORTC=impares;
                        delay_ms(1);
                        }
            }
« Última modificación: 16 de Diciembre de 2011, 14:58:48 por frozen »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema con el manejo de bits en CCS
« Respuesta #1 en: 16 de Diciembre de 2011, 15:01:52 »
Estas implementando mal los operadores.. AND sería & y OR seria |, entonces:

Código: C
  1. PORTC=(PORTA&0b10101010)|((~PORTA)&0b01010101);


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Problema con el manejo de bits en CCS
« Respuesta #2 en: 16 de Diciembre de 2011, 15:08:10 »
Estas implementando mal los operadores.. AND sería & y OR seria |, entonces:

Código: C
  1. PORTC=(PORTA&0b10101010)|((~PORTA)&0b01010101);

Saludos!

Gracias Suky hice los cambios que me recomendastes. Ahora si funciona. Me podrias decir como saco el OR.
Con ALT + no se.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema con el manejo de bits en CCS
« Respuesta #3 en: 16 de Diciembre de 2011, 15:24:05 »
Alt + 1 o el que tiene !
No contesto mensajes privados, las consultas en el foro

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Problema con el manejo de bits en CCS
« Respuesta #4 en: 16 de Diciembre de 2011, 15:28:33 »
Alt + 1 o el que tiene !

gracias  :)


 

anything