Autor Tema: Problema con pequeño programa de prueba SOLUCIONADO  (Leído 2291 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Problema con pequeño programa de prueba SOLUCIONADO
« en: 25 de Noviembre de 2013, 19:09:02 »
Hice el programa que pondre al final, para realizar unas pruebas de funcionamiento de la libreria que estoy tratando de crear del CI Tpic6C596, partiendo de la del 74HC595. Como no tengo mucha confianza en el buen funcionamiento, lo que he hecho es crear un proyecto en Proteus con el 74HC595 y un ULN2803, entre ambos sustituyen al TPIC6C596, con la intencion de asegurarme que el codigo funciona y despues probar ya la libreria.
Pero tengo un problema que no soy capaz de ver. El codigo, realizado en CCS, compila sin errores, pero al ejecutarlo me da un error que no entiendo. Adjunto a continuacion enlaces al proyecto de proteus, al codigo de CCS y una captura de pantalla donde se ve el error que me da, por cierto el programa sigue corriendo y el error se repite infinitamente, pero no hace lo que debe.
Lo que se supone que deberia hacer este proyecto con el codigo de prueba es: enviar un byte al 74HC595, memorizarlo en el registro de este y presentarlo en los 8 leds conectados al ULN2803. Presentaria alternativamente encendidos los leds pares e impares.
Espero que alguien mas ducho que yo con este tema me ayude.

Proyecto proteus
Codigo CCS
Pantalla Error

Gracias por adelantado.

Saludos.

P.D.: Me olvide de comentar que todo esta basado en un PIC12F675, aunque en el proyecto se ve, mejor lo aclaro aqui tambien.

« Última modificación: 28 de Noviembre de 2013, 21:59:48 por AcoranTf »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problema con pequeño programa de prueba
« Respuesta #1 en: 25 de Noviembre de 2013, 19:14:52 »
Hola,

por favor, deberías revisar la teoría de la diferencia entre una definición de un valor mediante el pre-procesador (siempre comienzan con el símbolo #) y una definición de variable en RAM.

Cambia:
#byte n = 0
por:
unsigned int8 n = 0;

y nos dices cómo te ha ido.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: Problema con pequeño programa de prueba
« Respuesta #2 en: 25 de Noviembre de 2013, 19:28:17 »
Hola,

por favor, deberías revisar la teoría de la diferencia entre una definición de un valor mediante el pre-procesador (siempre comienzan con el símbolo #) y una definición de variable en RAM.

Cambia:
#byte n = 0
por:
unsigned int8 n = 0;

y nos dices cómo te ha ido.

Saludos.

Tienes razon BrunoF, es que llevo bastante tiempo sin hacer nada con C y ademas tampoco lo domino bien.
Ya funciona sin errores, pero no hace lo que deberia, supongo que habra algun problema con los tiempos o algun error de concepto por mi parte, voy a revisar eso e intentare solucionarlo.
Muchas gracias por tu ayuda.

Saludos.

P.D.: Acabo de ver un fallo mio, coloque el /MR a masa, y es activo por nivel bajo, voy a cambiarlo y comento.

P.D2.: Bueno modifique lo del /MR y la alimentacion de los leds, que deberia ser 12 V. y estaba a 5 V. Con esto ya funciona casi todo correctamente. Digo casi todo porque los leds azules, conectados al GP3/MCLR, no encienden. He puesto en los fuses "NOMCLR", pero aun asi no va. Voy a seguir estudiandolo.
« Última modificación: 25 de Noviembre de 2013, 19:45:55 por AcoranTf »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con pequeño programa de prueba
« Respuesta #3 en: 25 de Noviembre de 2013, 20:39:52 »
  En el pic12F627 el GP3 es sólo entrada.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: Problema con pequeño programa de prueba
« Respuesta #4 en: 25 de Noviembre de 2013, 21:11:19 »
  En el pic12F627 el GP3 es sólo entrada.

AngelGris el que yo utilizo es el PIC12F675 y en su hoja tecnica no dice que ese pin sea de solo entrada. Por lo que dice interpreto que es bidireccional, como el resto. Voy a leer detenidamente la hoja a ver.

Saludos.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con pequeño programa de prueba
« Respuesta #5 en: 25 de Noviembre de 2013, 21:41:18 »
  No sé porque escribí 627  :oops: si estaba mirando el datasheet del 675  :5]

  Estoy mirando el documento DS41190E en la página 6.

  Mirando el GP3 dice, en la columna de function (GP3/MCLR/VPP), en imput type (TTL/ST/HV); en output type no dice nada por lo tanto no funciona como salida.

  Ojo!, este documento lo bajé hace rato, tal vez haya una errata y yo no la esté teniendo en cuenta.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: Problema con pequeño programa de prueba
« Respuesta #6 en: 26 de Noviembre de 2013, 18:20:40 »
  No sé porque escribí 627  :oops: si estaba mirando el datasheet del 675  :5]

  Estoy mirando el documento DS41190E en la página 6.

  Mirando el GP3 dice, en la columna de function (GP3/MCLR/VPP), en imput type (TTL/ST/HV); en output type no dice nada por lo tanto no funciona como salida.

  Ojo!, este documento lo bajé hace rato, tal vez haya una errata y yo no la esté teniendo en cuenta.


Pues parece que tienes razon AngelGris. En el documento actual esa informacion esta en la pagina 8, pero coincide con lo que tu indicas y ademas la descripcion lo deja aun mas claro <Input port w/ interrupt-on-change>, mientras que el resto del GPIO pone <Bi-directional I/O w/ programmable pull-up and
interrupt-on-change>.
Esto me va a obligar a cambiar a otro PIC, ya que necesito los 6 pines de IO.
Por lo demas ya tengo funcionando la simulacion en Proteus con el 74HC595. Pero como sospechaba, no me funciona con el TPIC6C596, asi que tengo que revisar la libreria a ver donde he metido la pata.

Saludos.