TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: marco_recargado en 10 de Octubre de 2006, 21:20:24
-
ESTOY TRABAJANDO CON EL PIC16F877
AL TRABAJAR CON UN CONTADOR EN EL CUAL USO PUERTO A PUERTO D Y PUERTO E
AL SIMULARLO TODO SALE PERFECTAMENTE ES DECIR SE GENERA UN CONTADOR
PERO AL PONERLO EN LA PRACTICA NO ME RESULTA
EL PROGRAMA ES EL SIGUIENTE
#include <16f877.h>
#fuses hs,nowdt,noprotect,nolvp,nobrownout
#byte porta=5
#byte portb=6
#byte portc=7
#byte portd=8
#byte porte=9
#use delay(clock=20000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
#use fast_io(E)
void main ()
{
///se hacen las configuraciones de todos los puertos///////////
set_tris_a(0x00);
set_tris_b(0x00);
set_tris_c(0xff);
set_tris_d(0x00);
set_tris_e(0x00);
disable_interrupts(GLOBAL);
//////////inicio del programa en general/////////////////
portb=0;
for (porte=0;porte<=1;porte++)
{
for (porta=0;porta<=62;porta++)
{
for (portd=0;portd<=254;portd++)
{
if (portc<255)
{
portb=portc;
while(1)
{}
}
else
{
portb = portb+1;
delay_ms(1);
}
}
}
}
while(1)
{
porta=0xff;
}
}
EN GENERAL LO QUE DEBE HACER ESTE PROGRAMA ES DECIRME CUANDO LA ENTRADA DE PUERTO C ES DIFERENCTE DE FF. CUANDO LA PUERTO C ES IGUAL A FF MANDO A PUERTO B UNA SEÑAL DE UN CONTEO (PARA DARME CUENTA QUE EL PROGRAMA FUNCIONA) PERO SI UNA ENTRADA ES DIFERENTE DE 0 MANDO A PUERTO B LO QUE HAY EN PUERTO C
PORTB=PORTC.
AHORA MI PROBLEMA ES QUE EL CONTEO ME LO REALIZA BIEN HASTA QUE LLEGA CON PUERTO A4 EN OTRAS PALABRAS EL CONTEO DE PUERTO D ES BUENO EL CONTEO DE PUERTO A TAMBIEN HASTA QUE LLEGA A4 EN A4 NO HAY CAMBIO ASI COMO EN A5 NI EN E0 Y POR LO TANTO EL PROGRAMA SE QUEDA EN UN BUCLE INFINITO COMO SI AL INCREMENTAR PUERTOA NUNCA LLEGARA A CERO
ESTO LO HAGO PARA LEER UNA MEMORIA Y VERIFICAR QUE REALMENTE ESTE EN BLANCO PARA ESTE PROPOSITO UTILIZO 15 PINES PARA DIRECCIONES PUESTO QUE LA MEMORIA QUE UTILIZO ES LA 27C256.
CUANDO SIMULO EL PROGRAMA LA SIMULACION ME ARROJA EL PROPOSITO QUE QUIERO PERO EN LA REALIDAD SALE OTRA COSA.
OJALA ALGUIEN PUEDA VER MI ERROR, ESTUVE LEYENDO EL MANUAL DEL PIC Y DICE QUE EL PIC POR DEFAULT TIENE A PUERTOA COMO ENTRADAS ANALOGICAS (COMO NO LE NO ENCONTRE SOLUCION EN C LO PASE EN ENSAMBLADOR PERO EL RESULTADO ES EL MISMO).
GRACIAS
-
El pin RA4 es de colector abierto (http://www.elrebujito.es/modules.php?name=Guiki&MODE=SHOW&PAGE=Colector%20abierto) y para poder utilizarlo debes ponerle una resistencia de pull-up (http://www.elrebujito.es/modules.php?name=Guiki&MODE=SHOW&PAGE=pull-up).
-
MUCHAS GRACIAS NOCTURNO ESTUVE REVISANDO SU MANUAL Y JURABA NO HABER LEIDO EN NINGUNA PARTE ESO DE COLECTOR ABIERTO ,Y ES QUE EN EL MANUAL VIENE COMO OPEN-DRIVE Y NO OPEN-COLECTOR Y PUES NO LE TOME IMPORTANCIA. PERO EL PORBLEMA YA SE RESOLVIO.
LA PROXIMA VEZ VOY A LEER CON MAS DETENIMIENTO :mrgreen: GRACIAS
-
No te preocupes, creo que todos hemos pasado por ese problema alguna vez.
Me alegro que lo hayas resuelto.