Autor Tema: Problemas al grabar en eeprom con microcode studio  (Leído 3579 veces)

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

Desconectado luchoc

  • PIC10
  • *
  • Mensajes: 47
Problemas al grabar en eeprom con microcode studio
« en: 19 de Diciembre de 2015, 05:15:17 »
Hola como están todos? antes que nada me presento, me llamo Luciano y hoy me registre en el foro ya que en otro de una famosa T ya no entraba nadie y bueno, recomendaron este y acá estoy. Hay mucha info super interesante que sin perder tiempo ya arranque a leer!

No esta demás aclarar que soy un aficionado con conocimientos de algunos lenguajes de programacion pero con muy bascios conocimientos en electrónica.

Bueno pasada mi presentación viene el pedido.
Seguramente lo que busco este en el foro en algún lado porque es bien básico pero nose ni como buscarlo.

Quiero guardar un dato numérico de un dígito en la eeprom del chip 16f84A, encontré esta función WRITE y también READ pero al usarlas como indica la ayuda (breve) que tiene el Microcode Studio compilo y todo bien pero a la hora de querer guardar el dato en la simulación con ISIS falla.

El error que muestra el ISIS al presionar el botón de guardado:

* error.jpg
(74.04 kB, 755x251 - visto 768 veces)


El diagrama:

* diagrama.jpg
(167.93 kB, 800x547 - visto 809 veces)


El código:
Código: [Seleccionar]
DEFINE osc 4 'Definimos la frecuencia
   
allDigital
TRISA.0 = 1 'Puerto A como entrada
TRISA.1 = 1
TRISA.2 = 1 'Puerto A como entrada
TRISA.3 = 1

TRISB   = 0 'Puerto B como salida
DIGITO var Byte 'declaramos la variable digito
PORTB = 63 'Muestra el numero cero en el display
digito = 0 'Inicializamos digito en cero

MAIN:
;GRABAR
IF PORTA.2 = 0 THEN 'Si RA.2=1 hacemos grabe el digito actual
write 0, digito
pause 100
Endif
;LEER
If PORTA.3 = 0 Then'Si RA.3=1 leemos la informacion y la mostramos en el display
;read 0, digito
pause 100
Endif

IF PORTA.0 = 0 THEN 'Si RA.0=1 hacemos lo siguiente
pause 100
If digito = 10 Then
digito = 0
Endif
If digito <= 10 Then
pause 100
digito = digito + 1
LookUp digito, [$3f, $06, $5b, $4f, $66, $6d, $7d, $07, $7f, $6f, $3f], PORTB
Endif
Endif

If PORTA.1 = 0 Then'Si RA.1=1 hacemos lo siguiente
pause 500
If digito = 0 Then
digito = 10
Endif
If digito >= 0 Then
pause 500
digito = digito - 1
LookUp digito, [$3f, $06, $5b, $4f, $66, $6d, $7d, $07, $7f, $6f], PORTB
Endif
Endif

Goto MAIN

Ojala puedan ayudarme, la idea de esto es un simple turnero digital (turnero tipo farmacia) donde si se apaga por error el turnero que vuelva a encender en el ultimo numero que se había visto.

Gracias de antemano!
Lucho.
« Última modificación: 20 de Diciembre de 2015, 11:08:54 por luchoc »

Desconectado luchoc

  • PIC10
  • *
  • Mensajes: 47
Re:Problemas al grabar en eeprom con microcode studio
« Respuesta #1 en: 22 de Diciembre de 2015, 23:12:39 »
Hola gente! como va? veo que el post tiene 33 lecturas pero no recibo ayuda, sera que lo explique mal? necesitan que lo explique de otra forma?

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problemas al grabar en eeprom con microcode studio
« Respuesta #2 en: 22 de Diciembre de 2015, 23:47:27 »
Te respondo el por que yo no conteste:

Mi principal problema es que esta en BASIC, no muchos usan ese lenguaje, realmente a mi no me gusta, no por el lenguaje en si, sino por la flexibilidad de poder manejar todas las cosas y saber exactamente que hace como es en C. Si tuviera el programa en ASM seria mejor para mi explicar el por que no funciona o que esta haciendo mal.

Y la otra es : Proteus y sus simulaciones, las cuales deje hace rato por problemas o incompatibilidad de algunos PICs y que llevan a no programar bien, "total en el Proteus puedo probar si no funciona".

Tu explicacion es correcta.  Solo resta que venga alguien con el conocimiento o que haya trabajado con BASIC ( especialmente microcode studio ) para que te resuelva el problema.
Espero que con estos 2 mensajes alguien mas lo vea y pueda responderte. Lamento no poder ser mas de ayuda

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re:Problemas al grabar en eeprom con microcode studio
« Respuesta #3 en: 23 de Diciembre de 2015, 10:48:02 »
Sera que puedes colgar el .hex que te genera el compilador para probarlo con el proteus y si es posible la simulacion en proteus tambien  :mrgreen:

Para ver si te puedo ayudar!

Saludos

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re:Problemas al grabar en eeprom con microcode studio
« Respuesta #4 en: 23 de Diciembre de 2015, 21:36:38 »
Bueno yo lo probe y funciona perfectamente  :mrgreen:
Graba el dato bien en la eeprom del pic y el proteus no me da ningun problema.
Con respecto al proteus quita el cristal y los capacitores asociados a este y dentro de la configuracion del pic colocas 4Mhz y listo!
Si te sigue fallando es posible que se la version del proteus, sea la que ocaciona el problema.

Saludos

Desconectado luchoc

  • PIC10
  • *
  • Mensajes: 47
Re:Problemas al grabar en eeprom con microcode studio
« Respuesta #5 en: 06 de Enero de 2016, 14:50:37 »
Gracias muchachos, lamentablemente no pude saber cual era el problema. Volví a agarrar el proyecto después de un tiempo y ahora grabe de la siguiente manera; WRITE $21, VALOR y funciono sin problemas, la única diferencia entre del proyecto 1 al 2 es que en el 1 lo hacia con el PIC16F877A-I/P y el 2 lo hice con el PIC16F84A, me suena raro que no pueda grabar en el pic mas potente en teoría de la familia de pics.

En fin, funciona!
Gracias!


 

anything