Microcontroladores - Configuración puertoA como puertoB en PIC16F877

 
Vista:

Configuración puertoA como puertoB en PIC16F877

Publicado por Pedro (1 intervención) el 13/02/2005 17:23:21
Lo primero que hice fue configurar el puertoB del PIC como salida para direccionar los registros del NIC RTL8019AS utilizando los pines B0-B5, además del puertoE para las señales de Reset, Lectura y Escritura de dicho controlador:

#use fast_io(B)
#use fast_io(E)

#byte PORTB = 6
#byte PORTE = 9

port_b_pullups(TRUE);
PORTB = 0;
port_b_pullups(TRUE);
set_tris_b(0x00);
PORTE.2 = PORTE.1=1;
PORTE.0 =1;
set_tris_e(0x00);

los resultados fueron los esperados, y todo funcionaba correctamente.

Posteriormente quise utilizar el puertoA en vez del B para direccionar para lo que configuré dicho puerto como salida digital mediante los registros ADCON1 y ADCON0:

#use fast_io(A)
#use fast_io(E)

#byte PORTA = 5
#byte PORTE = 9

ADCON1=0x06;
ADCON0=0x00;
PORTA0 = 0;
set_tris_a(0x00);
PORTE.2 = PORTE.1=1;
PORTE.0 =1;
set_tris_e(0x00);

pero no funcionaba correctamente y no sé por qué. Si alguien puede echarme una mano, se lo agradecería muchísimo.


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Configuración puertoA como puertoB en PIC16F877

Publicado por Guillermo Sanfiz (13 intervenciones) el 15/02/2005 13:25:34
Si con el PORTB funciona bien y con el PORTA no, debe ser por lo siguiente:

(ESTO YA LO HICISTE)
Para usar los pines del porta como salidas, primero los tenes que configurar como digitales. Por defecto estan configurados como entradas analogicas. Para hacer esto tenes que modificar los registros ADCON0 y ADCON1.

(TE FALTA HACER ESTO)
Al usar el porta.4 como salida, tenes que agregarle una resistencia de pull-up, esto significa que el porta.4 debe ir con un resistencia a +5v (los mismos +5v del pic).
Osea, el porta.4 configuralo como salida, y conectalo adonde lo quieras conectar, pero además agregale una resistencia a +5v.
La resistencia que sea de 1k, y sino probá con otros valores.
Esto es porque es una salida de drenaje abierto, si miras la hoja de datos del pic te vas a dar cuenta.
Este pin se puede usar como clock externo para el TMR0, asegurate que no este configurado de esta manera (en el registro OPTION).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me olvide de decirte algo

Publicado por Guillermo Sanfiz (13 intervenciones) el 15/02/2005 13:28:50
Tu codigo esta hecho en C.
tenes el compilador? es completo?
me lo podras pasar?
por cualquier cosa, ya sabes mi mail.

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar