Error en programa para un micro controlador pic18f4550

hola, espero esten bien, lo que pasa es que realice un programa para un micro controlador pic18f4550, el programa tiene 1269 lineas de código y al compilar aparece 0 errores y 0 advertencias, cuando lo simulo en proteus, simula excelentemente y hace todo cuanto fue programado para hacer, el problema es que cuando paso el programa al pic y lo coloco a funcionar ya no funciona tan bien como en la simulación, es mas es como si el programa corriera a pedazos, mi pregunta es por que pasa esto y que se puede hacer para solucionarlo, de antemano gracias por su respuesta.
 
Seguramente le habrá afectado el mundo real en los simuladores suele funcionar todo.

Pueden ser varias cosas lo primero un ambiente ruidoso como apunta Daniel Meza, después pulsadores reales con rebotes reales etc.

Si aportas mas datos lo podemos ir viendo pero en general la recomendación estandard sería:
  • Fuente de calidad
  • Poner varistores L-Pe, L-N y N-Pe
  • Poner todas las entradas y salidas optoacopladas
  • Usar otra fuente para alimentar el lado "externo" de los optos
  • Bajar cuanto se pueda la impedancia de las líneas largas
  • Rezar algo
 
hola, espero esten bien, lo que pasa es que realice un programa para un micro controlador pic18f4550, el programa tiene 1269 lineas de código y al compilar aparece 0 errores y 0 advertencias, cuando lo simulo en proteus, simula excelentemente y hace todo cuanto fue programado para hacer, el problema es que cuando paso el programa al pic y lo coloco a funcionar ya no funciona tan bien como en la simulación, es mas es como si el programa corriera a pedazos, mi pregunta es por que pasa esto y que se puede hacer para solucionarlo, de antemano gracias por su respuesta.

Hola...Como planteas la situación y para hacer una reflexión corta eso pasa por creer que lo similar(simulación) significa igual y en esto no es así es solo similar pero no igual :) .
Saludos.

Ric.
 
muchas gracias por sus respuestas,el programa es para un juego de sapo electronico y aunque no esta a temperaturas altas si tiene muchos pulsadores y aunque todavia no he definido si seran sensores opticos o pulsadores, seguire sus recomendaciones de entradas y salidas optoacopladas, pues en la depuracion corre linea por linea como deve ser, muchisimas gracias, suigo atento a sus respuestas.
 
Si se trata de pulsadores no olvides de poner "rutinas antirrebote" en el programa para evitar problemas. O bien por hardware puedes implementar circuitos antirrebote
 
muchas gracias por sus respuestas,el programa es para un juego de sapo electronico y aunque no esta a temperaturas altas si tiene muchos pulsadores
pues en la depuracion corre linea por linea como deve ser


¿ a que te refieres con que "en la depuración corre linea a linea como deBe ser ?.
Si te refieres a la simulación, yo no me fiaría mucho de esos programas de simulación, no hay nada como probar un programa sobre el microcontrolador REAL. Si algo no funciona como esperas, le haces un DEBUG y sacarás el problema de inmediato.

Sobre el tema pulsadores, no olvides poner una resistencia para dejar el puerto a nivel alto o bajo con el pulsador abierto, o te puedes encontrar con resultados aleatorios. No hace falta que gastes dinero con optoacopladores, si el diseño está bien hecho puede funcionar perfectamente con los pulsadores conectados directamente al puerto.
 
muchas gracias por sus respuestas, me han sido de mucha ayuda, ahora solo me queda un problema que no he podido solucionar, cuando uso los pines C4 y C5 uno esta configurado como salida y el otro como entrada en los tris están bien definidos pero definitivamente no funcionan, desactive todo lo de usb pero no solucione nada, profa me podrían ayudar con esto ultimo.
 
Hola

Te comento, como ya lo han hecho otros, que no es lo mismo la simulación, sobre todo en Proteus que no es un buen simulador, pero si realmente satisface muchos requerimientos desde el punto de vista educativo, que comprobar tu programa con compponentes reales, además, si vas a utilizar pulsadores te recomiendo conectarlos al puerto B y configurara los fuses para tener PULL-UP en esos pines y no tener que agregar resistencias adicionales, de esa forma el pulsador iría conectado a uno de los terminales del Puerto B (que tienen PULL-UP) y a tierra. De esta forma al presionar el pulsador se establecería un ´0´en el terminal del PIC y cuando está abierto un ´1´.
 
Atrás
Arriba