
Ayuda desplazamiento de bit
Publicado por Federico (2 intervenciones) el 30/10/2013 01:38:27
Buenos dias, estoy empezando a programar un 18F4550 y estoy intentando hacer funcionar el siguiente programa que cumpla las siguientes condiciones:
Inicio: PORT A entrada, PORT D salida. Pin RD0 en alto;
Al presionar el pulsador(a +vcc) ubicado en el puerto RA0 la salida deberia configurarse de manera que el pin en alto del PORT D sea el siguiente, osea RD1.
Tal vez examinando el programa sea mas facil la interpretacion.
--------------------------------------------------------------------------------------------------------------
#byte PORTD=0x88
#byte PORTA=0X85
int corrimiento(int valor); //DECLARO CORRIMIENTO
void main(){
set_tris_a(0xff);
set_tris_d(0x00);
int a=0b00000001;
int i=0;
int z;
output_d(a);
comienzo:
if(bit_test(PORTA,0)==1)
output_d(corrimiento(a));
else goto comienzo;
}
int corrimiento(int valor){ // DEFINO CORRIMIENTO
int c=0b00000000;
c=valor<<1;
return c;
}
--------------------------------------------------------------------------------------------------------------
Mi gran problema es que al inicial el programa el pin RD0 comienza en alto pero al presionar el pulsador de RA0 la salida no se desplaza.
Desde ya, muchas gracias.
Inicio: PORT A entrada, PORT D salida. Pin RD0 en alto;
Al presionar el pulsador(a +vcc) ubicado en el puerto RA0 la salida deberia configurarse de manera que el pin en alto del PORT D sea el siguiente, osea RD1.
Tal vez examinando el programa sea mas facil la interpretacion.
--------------------------------------------------------------------------------------------------------------
#byte PORTD=0x88
#byte PORTA=0X85
int corrimiento(int valor); //DECLARO CORRIMIENTO
void main(){
set_tris_a(0xff);
set_tris_d(0x00);
int a=0b00000001;
int i=0;
int z;
output_d(a);
comienzo:
if(bit_test(PORTA,0)==1)
output_d(corrimiento(a));
else goto comienzo;
}
int corrimiento(int valor){ // DEFINO CORRIMIENTO
int c=0b00000000;
c=valor<<1;
return c;
}
--------------------------------------------------------------------------------------------------------------
Mi gran problema es que al inicial el programa el pin RD0 comienza en alto pero al presionar el pulsador de RA0 la salida no se desplaza.
Desde ya, muchas gracias.
Valora esta pregunta


0