• Miércoles 6 de Noviembre de 2024, 02:30

Autor Tema:  Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0  (Leído 3775 veces)

DSK

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« en: Sábado 11 de Marzo de 2006, 21:45 »
0
Hola, soy nuevo x aqui y si me pudierais ayudar os lo agraderece eternamente.

Tengo que hacer un controlador de luces por tiempo con una precision de 0.01 segundo para lo que he usado el timer1 comparandolo con el ccp1 al valor equivalente a dicha precision. Para incrementar unos 3 contadores (para alcanzar las 46 horas que es el maximo valor que necesito) cuando se produzca la interrupcion.

Pongo la configuracion y lo dejo esperando una señal por la patilla rc0 (que en la prueba cambie por rc2). Y hasta la espera funciona tras dar el pulso en la patilla se pasan 4 segundos en los que no se enciende ninguna luz (sustituidas por led para probar) aun poniendo tiempos de 1 o 2 segundos.

Lo que necesito es contralar 25 luces por tiempo, es decir en una eeprom 24lc256 tengo metidos los valores 3 bytes para el tiempoy uno para la bombilla (patilla y puerto) el control de esta memoria lo tengo bien y con subrutinas asique lo he quitado por ser mas practico a la hora de probar.

Lo que hago es nombras 4 variables y luego asignarlas a los contadores y linea.

Como veis necesito todos los puertos como salida solo me queda libre el C que lo necesito para la comunicacion i2c con la memoria y para la conexion serie con el PC para leer datos (para testear las lineas y ver que los cables no estan cortados sin que se enciendan y algo asi)

Podrias ayudarme ya que llevo varios dias con el codigo estancado xq no consigo que lo haga bien.

Uso un PIC16F877 con oscilador de cristal a 20Mhz, condensadores de 15pf

Aqui os dejo el asm a ver si me podeis echar una mano xq tengo que entregarlo en breve.

http://rapidshare.de/files/15231473/PruebaB.asm.html
Edito: Creo que me falta poner en la variable buf3 en el valor un 1 al final xD.
Gracias de antemano.

Aqui el esquematico de pruebas solo con el puertoB que es como lo estoy probando:


Edito: Ya se que me he equivocao en el dibujo y el cristal es una pata al osc1 y otra al osc2 eso esta bien solo que lo he hecho con prisa y ya lo habia subido :(

PD: Perdona faltas de ortografia y demas pero esque llevo unos dias...  :comp: que ya estoy casi loco

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #1 en: Domingo 12 de Marzo de 2006, 01:21 »
0
Pues no se si esto te sirva :unsure: , pero a mi me ocurrio algo similar que el programa se me reseteaba y aveces no hacia lo que tenia que hacer, aunque en el simulador me funcionaba bien, el problema era a la hora de quemar el programa al pic, yo uso winpic800 con el JMD programmer. no se si es tu caso, espero tu respuesta.


saludos  :hola:
No basta tener buen ingenio; lo principal es aplicarlo bien.

DSK

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #2 en: Domingo 12 de Marzo de 2006, 12:37 »
0
Pues lo estoy programando con el icrprog, pero me he bajado el winpic800, selecciono en hardware el jdm (aunque la placa me la han dejado pero seleccionando jdm en el icrprog me funciona, no es comprada es hecha por hay pone SAIT no se si sera algo o simplemente un nombre que han puesto), borro el pic y cuando voy a programar entonces me dice error en la direccion 0x000000 entonces pues no he podido probar lo que me dices.

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #3 en: Lunes 13 de Marzo de 2006, 20:58 »
0
No te he dado mi solucion ;) , lo que te preguntaba era si usabas winpic800 y JMD, porque si era asi lo que tenias que hacer es :donde dice config seleccionar XT, y quitar los demas cheques de la parte que dice -OSC- (si usas un circuito para reset dejar el cheque en MCLR), lo demas se deja como esta.
Pero si no estas usando eso, entonces no te sirve mi solucion porque es necesario que tengas el circuito de JMD para que funcione, pero tu  tienes otro circuito, asi que mi sugerencia es que revises la configuracion del ICPROG puede ser que este ahi el problema. Suerte  :hola:
No basta tener buen ingenio; lo principal es aplicarlo bien.

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #4 en: Lunes 13 de Marzo de 2006, 23:35 »
0
Hola! Es probable que en los bits de configuracion estes habilitando el watchdog, por lo que te genera el reset despues de algun tiempo. En el programador que uses, verifica que el WDT esté desactivado.
Hice click en el link, pero no pude ver el programa; sería bueno verlo, para saber si no está alli el problema.
Ah!, y no te preocupes!, si quedas loco, pues bienvenido a la familia :lol: !!!!!
Y si hay faltas de ortografía, aquí no necesitamos compilar nada :P  [HERORR x]

Pon el programa, así lo revisamos

Saludos :hola:

DSK

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #5 en: Martes 14 de Marzo de 2006, 00:59 »
0
Gracias karen81, pero la frecuencia es de 20Mhz y tiene que ser HS, no?. De todas formas me comprado hoy otra placa pa probar si fuera cosa de que esta esa mal pero agradeceria lo probarais y asi saber si al menos el codigo esta bien pos sino me rula a mi ya vere quien lo meta dentro del PIC xD

Huguen_aus_Tirol el .asm esta subido en ese link, primero pinchas en descarga free, luego donde pone lo del mirror pones las 3 letras o numeros que pone y a descargar.


Gracias

PD: al circuito de reset te refieres en el programador, no karen81 xq lo que es en mi circuito no lo tiene. En cuanto a lo del WDT teoricamente yo lo desactivo en la configuracion del icrprog asique supongo que en el pic la grabara bien (a ver si va ser que no :( )

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #6 en: Martes 14 de Marzo de 2006, 18:22 »
0
si HS porque es de 20MHz  :P , verifica bien lo del watchdog. porque a mi en principio era ese el error y despues eran detalles en la configuracion lo que me daba problemas, no creo saber otra razon por la que ocurra un reset sin quererlo, excepto que la energia se bajara por alguna razon. pero no creo que sea el caso
No basta tener buen ingenio; lo principal es aplicarlo bien.

Orizabeño

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Pic16f877 Se Resetea Tras 5 Seg De Un Pulso En Rc0
« Respuesta #7 en: Viernes 9 de Junio de 2006, 11:03 »
0
FILTRA BIEN TU VOLTAJE DE ALIMENTACION CON UN CAPACITOR ENTRE ALIMENTACION Y TIERRA, UN CAP DE 10 MICROFARADIOS ES SUFICIENTE.


EN EL DIAGRAMA NO LO PONES PERO MCLR YA SABES DEBE IR A 5 VOLTS.



POR EXPERIENCIA PROPIA SOLO TE DIGO:

SI CADA QUE CONECTAS EL PIC GENERA EL MISMO PATRON DE PROCESAMIENTO COMO SI VIERAS UNA PELICULA REPETIDA CADA Q LO ENERGIZAS ENTONCES.........ERROR DE PROGRAMACION O CONFIGURACION.



SI CADA QUE LO CONECTAS EL PIC GENERA EVENTOS ASINCRONOS Y DISTINTAS FORMAS DE OPERACION COMO SI DE ALGO SIN LOGICA SE TRATARA ENTONCES...........ERROR HARDWARE CHEKA CONEXIONES.


SINCERAMENTE NO SE QUE PUEDA ESTARTE PASANDO EN EL CODIGO CHEKA TODAS LAS CONFIGURACIONES.