Autor Tema: No puedo configurar RB7 como entrada en 16F873  (Leído 2671 veces)

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
No puedo configurar RB7 como entrada en 16F873
« en: 14 de Enero de 2010, 12:13:50 »
 :5] así es amigos....  no se si son los años... las cervezas...  :D
La cuestion es que tengo tres pulsadores en el puerto b de un 16f873, en RB5, RB6, y RB7....
Tengo seteado  __CONFIG  _XT_OSC &  _WDT_ON & _PWRTE_ON & _CP_ALL & _BODEN_ON & _LVP_OFF

RB5 y 6 funcionan correctamente...  RB7 no hay forma...
Esta configurado su tris como entrada...  la placa está comprobada y es correcta...

pero que me estoy olvidando?...  :( :oops:


Un abrazo

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #1 en: 14 de Enero de 2010, 12:24:10 »
Hola Norberto, asumo que colocaste pull ups o pull downs a B7. ¿No será que activaste accidentalmente la pullup interna en B7?

Si programas el PIC con ICSP habría que darle un vistazo al diagrama de B7.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #2 en: 14 de Enero de 2010, 13:08:52 »
 :5] :5] :oops: :oops: :mrgreen: :D :D  je je je...
realmente ya me estaba desesperando....
Revisé placa, cambio de bancos..... je je je...
MOVLW   B'1110000'   
MOVWF   TRISB

y el error estaba ante mis ojos... y no lo veía!!!  :5]

MOVLW   B'11100000'  falta un bit....  quizas entre los cambios lo borré ...  :mrgreen:

Gracias Mig por tu preocupacion....

ya está solucionado...

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #3 en: 14 de Enero de 2010, 14:37:56 »
 :D :D :D

De nada Norberto.

Desconectado Eyedol

  • PIC16
  • ***
  • Mensajes: 129
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #4 en: 14 de Enero de 2010, 21:27:47 »
jajajajajajaja :-/ Amigo norberto te comento que ese tipo de cosas siempre me pasa por olvidar conectar un cable o cualquier cosa y paso horas dandole a la cabeza y nada. Abeces resulta tomar un respiro pero ya estoy harto de estos, quisiera hacer procedimientos pero como hacerlos cuando no se ni donde voy!!!! :( .... bueno sera como los Gringos anotar todo lo que se hace y se deja de hacer, me rebienta tener que hacerlo pero creo que cuando los diseños se vuelven complicados no queda otra!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #5 en: 14 de Enero de 2010, 22:09:48 »
 :x En assembler pasan esos descuidos! Habré perdido tiempo buscando esos errores y cuando te das cuenta te quieres matar!!  :5]


Saludos! Y aflojale a la Quilmes!   :D
No contesto mensajes privados, las consultas en el foro

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: No puedo configurar RB7 como entrada en 16F873
« Respuesta #6 en: 15 de Enero de 2010, 02:20:09 »
Estoy casi seguro que toma cervesa Santa fe :D :D :D :D
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado alekspm

  • PIC10
  • *
  • Mensajes: 13
RB7 como entrada en 16F873 en PIC Basic Pro v3.0
« Respuesta #7 en: 17 de Enero de 2010, 00:19:33 »
Hola, pues aqui te envio el código fuente que yo escribi y que configura RB7, RB6 y RB5
como entradas. Y RB3 y RB2 como salidas. El prog esta hecho con PIC Basic Pro v3.0.
Al presionar RB7 (set_1), RB3= ON RB2= OF. Al volver a presionar RB7 (set_1), RB3= OFF y RB2= ON
Al presionar RB6 (set_2), RB3= RB2= ON.
Al presionar RB5 (reset), RB3= RB2= OFF.
Se visualiza cada pulsación en un LCD de 2x16 conectado en PORT C
Adapta este prog para cualquier PIC. Si funciona

define osc 4        ' Velocidad del cristal XT= 4.000000 Mhz

DEFINE LCD_DREG PORTC   ' Configura el puerto C para datos del LCD
DEFINE LCD_DBIT 0       ' Bit de inicio 0 o 4 para bus de datos, RC0 en este caso
DEFINE LCD_RSREG PORTC  ' Configura el Register Select en el pto C
DEFINE LCD_RSBIT 5      ' Configura RC5 para habilitar el RS del LCD
DEFINE LCD_EREG PORTC   ' Configura el Enable Register en el pto C
DEFINE LCD_EBIT 4       ' Configura RC4 para habilitar el E (Enable) del LCD
DEFINE LCD_BITS 4       ' Configura el numero de bits del bus de datos del LCD
DEFINE LCD_LINES 2      ' Numero de lineas del LCD
DEFINE LCD_COMMANDUS 2000   ' Configura tiempo de espera para comando en uSeg
DEFINE LCD_DATAUS 50        ' Configura tiempo de espera de datos en uSeg

input portb.7   ' Configura RB7 como entrada
input portb.6   ' Configura RB6 como entrada
input portb.5   ' Configura RB5 como entrada

output portb.3  ' Configura RB3 como salida
output portb.2  ' Configura RB2 como salida

pause 10

conmuta var bit
bandera var bit

option_reg.7= 0

on interrupt goto isr

intcon= %11001000   ' Habilita la GIE y las resistencias pull ups

bandera= 0
conmuta= 0
   
Ciclo:
    if bandera= 1 then  ' Verifica que no se ha accionado un push bottom
        goto Ciclo
    endif

disable

isr:

if portb.7= 0 and conmuta= 0 then
    LCDOUT $FE, 1   ' Limpia el LCD
    PAUSE 10     
    lcdout $FE, 1,"RB7: Set_1"
    pause 10   
    lcdout $FE,$C0,"RB3: ON RB2: OFF"
    pause 10
   
    portb.3= 1  ' Pone a 1 RB3
    portb.2= 0  ' Pone a 0 RB2
    conmuta= 1
   
    while portb.7= 0
   
    wend
   
    pause 200
     
    goto salir
endif
   
if portb.7= 0 and conmuta= 1 then
    LCDOUT $FE, 1   ' Limpia el LCD
    PAUSE 10   
    lcdout $FE, 1,"RB7: Set_1"
    pause 10     
    lcdout $FE,$C0,"RB3: OFF RB2: ON"
    pause 10
     
    portb.3= 0  ' Pone a 0 RB3
    portb.2= 1  ' Pone a 1 RB2   
    conmuta= 0
   
    while portb.7= 0
   
    wend
   
    pause 200
     
    goto salir
endif   
   
if portb.6= 0 then
    LCDOUT $FE, 1   ' Limpia el LCD
    PAUSE 10       
    lcdout $fe, 1, "RB6: Set_2"
    pause 10       
    lcdout $FE, $C0, "RB3: ON RB2: ON"
    pause 10
     
    portb.3= 1  ' Pone a 1 RB3
    portb.2= 1  ' Pone a 1 RB2
     
    while portb.6= 0
   
    wend
   
    pause 200
     
    goto salir
endif
   
if portb.5= 0 then
    LCDOUT $FE, 1   ' Limpia el LCD
    PAUSE 10
    lcdout $FE, 1, "RB5: Reset"
    pause 10   
    lcdout $FE, $C0, "RB3_OFF  RB2_OFF"
    pause 10
     
    portb.3= 0  ' Pone a 0 RB3
    portb.2= 0  ' Pone a 0 RB2
     
    while portb.5= 0
   
    wend
   
    pause 200
    goto salir   
endif       
   
salir:
    bandera= 1
    intcon.0= 0
 
resume
enable


 

anything