interrupcion del RB0
| interrupcion del RB0 |
|
Ardogan
|
Puede ser que RB0 se dispare por ruido, interferencia, rebotes si lo tenés conectado a un switch...
Cómo lo tenés conectado actualmente?. Viendo lo que decís de que hay un cable conectado directamente a RB0... bueno el cable bien puede tomar interferencia, no estaría demás poner una resistencia en serie (100 ohms) con algún capacitor chico (56 pf) para ver si es eso (si está armado quizás podés conectar eso en el borne de entrada para hacer una prueba sencilla). Lo del pull-up o pull-down te asegura un estado lógico de la entrada en 0 (pull-down) o 1 (pull-up) si al cable no le aplica tensión el dispositivo conectado en el otro extremo, pero no te elimina interferencia porque la tensión del cable seguiría entrando en forma directa a RB0. Me suena interesante eso de que anda por 10 minutos, y recién después salta el problema. Eso podría hablar de que hay algo que se calienta y mete problemas (cotejar consumos) o por ahí activás algo a los 10 minutos.... En fin, estaría bueno que pongas un diagrama (o lo expliques con palabras en todo caso) de que es lo que está conectado a RB0. Saludos |
||||||||||||
|
|
|||||||||||||
|
juankah72
|
Gracias Argodan por tu interés. Te comento...
la conexion está asi pin RB0---------------------- pulsos de entrada (un pulso por segundo) I I R x 1k I I GND Es asi la conexión. Igual puse la R de 1k desde +V pero pasa igual. Funciona hasta 30 o 40 minutos bien y de un momento a otro, se "enloquece" el conteo y se queda en blanco el display. Otras veces es mas rápido que presenta el problema. Lo de los 10 minutos no es que sea en ese preciso momento, es mas bien a modo de ejemplo... a veces 5, 10 o más minutos. Suena muy convincente lo del ruido que entra por el cable. Pondré un condensador del pin a tierra a ver como me funciona. Te estaré comentando... . |
||||||||||||
|
|
|||||||||||||
|
mabauti
|
seria bueno que postearas el programa
|
||||||||||||
|
|
|||||||||||||
|
Ardogan
|
Ok, esperamos a ver que pasa. Acordate de probar con una resistencia serie desde la entrada del cable hasta RB0.
(<1K) entrada cable --|-- Rserie --------|-----RB0 (pulsos) | ---- Rpd ---- 56pf | | GND GND No hace falta sacarle el pull-down (la resistencia que ya pusiste). Ahora, que características tiene los pulsos que mandas por el cable, son entre 0 y 5V?, que corriente puede mandar el dispositivo del otro extremo del cable? También como dice mabauti, puede haber lío con el programa, alguna rutina en la que entrás después del tiempo que comentaste, algún desborde de alguna variable que no hayas tenido en cuenta. Y si ves que el problema sigue fijate si hay algo en el circuito que haya calentado (a dedímetro con una pulsera estática, despues de cortar alimentación por supuesto). En fin, si no hay caso vas a tener que postear la mayor cantidad de información posible, porque podrían ser muchas cosas. |
||||||||||||
|
|
|||||||||||||
|
RoDRiSH
|
Hola Juankah, yo te aconsejo q pruebes añadiendo un buffer a la salida del pin RB0 (74LS245) y de la salida del buffer al LCD, inclusive los 14 pines del LCD deberian ser manejados via buffer, de lo contrario es probable q te despidas de tu pic, ya que estos son tan delicados como que los soplas y adios, yo tuve alguna vez ese problema cuando comence a manejar pic's y el problema era corriente, el LCD necesita cierta cantidad de corriente en su funcionamiento, de lo contrario funciona a la de Dios y cmo tu dices que a veces da 5mins o a veces 10mins o 20mins, no es constante, a veces da y otras no.
Otro problema puede ser el copilador que utilices, cual estas utilizando MPLAB? Pic Basic Pro?, algunas veces copila mal y hace que los registros en la programación no sean secueciales, me explico puede que tu interrupcion la manejes por pulling o programando el registro de interrupcion, en cualquiera de los dos casos utilizas saltos o jmp algunas veces, muy raras veces el copilador carga mal el programa al pic y este se enloquece y uno piensa que hice mal, y revisa el hardware y nada esta todo bien, prueba programando de nuevo y si es necesario cambia de programador. Si vas ha utilizar buffers, dos seran los que utilices, uno para los pines de datos del LCD que son ocho y otro para los tres de control RS RW y E, el 74LS245 maneja un bus de ocho bits que pueden ser transmitidos de A a B o de B a A configurable por medio de dos pines de control DIR y Enable... ah y me olvidaba es triestado, en su datasheet dice mas y facil de manejar, prueba y me avisas como te va... Saludos |
||||||||||||
|
|
|||||||||||||
|
juankah72
|
Hola a todos y gracias por sus respuestas.. les cuento como voy... ahhh primero que todo, los pulsos provienen de un reed swiche que está pegado a la rueda de un carro, pues el programita es de un tacómetro.
Entonces puse el capacitor de 47nf a la entrada del pin RB0 pero no le puse la resistencia en serie. El probrema persiste, empieza a trabajar pero a medida que el carro avanza el contador se descontrola pues muestra en el display números erroneos y en un momento dado se apaga. Puse un led de monitoreo que enciende y apaga durante todo el lazo del proceso y aun con el display en blanco el led sigue funcionando como si todo fuera bien. a continuacion la subrutina de interrupcion. ;--------------- RUTINA DE INTERRUPCION -------------------------- incr_tarifa btfss INTCON,INTF goto fin_int normal incf pulsos,1 movlw x_pulsos ;x_pulsos es una constante xorwf pulsos,0 btfss STATUS,CERO goto resetee rx_pulso incf mts_l,1 ;parte baja de cont. de metros movlw 0xff xorwf mts_l,0 btfss STATUS,CERO goto sume incf mts_h,1 ;parte alta de cont. de metros ;aqui va una suma propia que hace parte de una gestion del programa sume movlw valor_h ;parte alta sumando 1 movwf ACCaHI movlw valor_l ;parte baja sumando 1 movwf ACCaLO movf total_h,0 ;parte alta sumando 2 movwf ACCbHI ;parte baja sumando 2 movf total_l,0 movwf ACCbLO call D_add ; RESULTADO ; LA SUMA QUEDA EN TOTAL movf ACCbHI,0 movwf total_h ;pasa resultado a reg. tot movf ACCbLO,0 movwf total_l clrf pulsos goto resetee resetee movlw inicio_timer movwf TMR0 fin_int bcf INTCON,T0IF bcf INTCON,INTF retfie como ven es algo supremamente sencillo solo con el contador de pulsos incrementa un registros y de acuerdo a la cantidad de pulsos hace una sumatoria. COMO VEN TAMBIEN,,, TRABAJO CON EL ASSEMBLER DE MICROCHIP PUES NO SE TRABAJAR EN C. |
||||||||||||
|
|
|||||||||||||
|
| Temas de interés | |
|---|---|
| Convertir de Puerto Paralelo a USB | |
| Data Cable Nokia RS-232: Forum | |
| Diagrama de construcción data cable Nokia DKU-5 (USB) | |
| Data cable para siemens c65 | |
| Construcción del data cable Nokia 3595 | |
| Foros de Electronica |
|
||
Cuestiones Elementales de Electrónica
||
Fuentes de alimentacion
||
Circuitos de radio
||
Diseño de circuitos en general
|| || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfases y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 11.57797 segundos, Consultas = 13
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 11.57797 segundos, Consultas = 13

