Autor Tema: PORQUE PUEDE DAR ERROR??  (Leído 2324 veces)

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

Desconectado Huriz

  • PIC10
  • *
  • Mensajes: 16
PORQUE PUEDE DAR ERROR??
« en: 12 de Marzo de 2007, 05:17:36 »
Wenas, tenemos un proyecto para clase en un  16f84a, y nos han dicho q tiene q tenemos q usar componentes lo mas pekeños posibles para ahorrar en material y en espacio, la cosa es que hemos elegido un pic 12f629 para sustituir nuestro pic por este ultimo. Hemos conseguido pasar el codigo sin que nos de errores, xro a la hora de compilar y debugear..las comparaciones utilizando "btfsc y btfss" no funcionan correctamente como en el 16f84a. sabe alguien porque puede ser?

utiliamos el mplab para debuguear, cambiamos todos los parametros en este prorama, es decir le cambiamos el pic para decirle que el codigo escrito es para el 12f629 y al compilar no da problemas.

Gracias por adelantado y haber si alguien sabe..que estamos ya desesperados..
« Última modificación: 12 de Marzo de 2007, 06:33:46 por Huriz »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #1 en: 12 de Marzo de 2007, 08:12:40 »
Huriz es un poco escueta tu información y sin mayores datos técnicos es imposible saber qué está sucediendo.

¿Puedes comentarnos qué es lo que esperas que suceda y qué es lo que realmente sucede?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Huriz

  • PIC10
  • *
  • Mensajes: 16
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #2 en: 12 de Marzo de 2007, 08:29:42 »
oks, veamos, nosotros hemos hecho un programa para el pic 16f84a, y cambiado el include y los puertos lo hemos pasado a codigo para el pic 12f629. Una vez finalizado el proceso de cambio, y ver que no nos da ningun error, hemos debugueado el programa, y hemos comprobado que a la hora de hacer conparaciones con las sentecias btfsc y btfss, no salta a donde deveria saltar...

un ejemplo, la memoria del pic, si no la has utilizado nunca viene como FF, pues nosotros pasamos a una variable el contenido de la memoria, que seria FF, si comparamos

Código: [Seleccionar]
call leer memoria          ; funcion donde hemos leido lo que hay en la memoria y donde pasamos el dato a EEDATA
movf EEDATA,W                     ; pasamos el contenido de EEDATA a W, q al ser el pic nuevo contiene FF
sublw 0FFH                             ;restamos a W FF, lo cual nos tendria q dar 0
btfsc status,z
call si_son_iguales
call si_son_diferentes              ;Tendrai que entrar aki xro entra en la de arriba


y eso es lo que nos pasa...con el 16f84a funcionaba..y sin tocar estas partes de codigo al pasarlo al 12f629 las comparaciones ya nos nos funcionan

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #3 en: 12 de Marzo de 2007, 09:26:09 »
Una pregunta, ¿cómo es la rutina de lectura de la eeprom? La pueden subir?

La declaración de los registros del PIC la hacen manualmente o usando los .inc?

¿Porqué asumen que el contenido es 0xFF ? esto es solo si lo acaban de grabar, si su programa hace uso de la EEPROM entonces puede que este valor cambie. 

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado xocas

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 2312
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #4 en: 12 de Marzo de 2007, 14:38:29 »
hola

¿te parece maunix que podria ser el tipico error que solemos cometer al pasar del 16f84 a otro micro con comparadores o conversores a/d?

Huriz yo no se nada de assembler, pero diria que el codigo posteado no es suficiente para saber cual es el problema con certeza

saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #5 en: 12 de Marzo de 2007, 15:52:52 »
¿te parece maunix que podria ser el tipico error que solemos cometer al pasar del 16f84 a otro micro con comparadores o conversores a/d?

No, ya que de acuerdo a lo que interpreto del código, Huriz habla de una comparación entre 2 valores , no a usar el módulo de comparación.


Huriz yo no se nada de assembler, pero diria que el codigo posteado no es suficiente para saber cual es el problema con certeza

Bueno, casualmente esto es lo que le he pedido.  :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Huriz

  • PIC10
  • *
  • Mensajes: 16
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #6 en: 12 de Marzo de 2007, 15:55:33 »
bueno, la cosa ya esta resuelta...o eso parece...cosa d la memoria q habia q cambia al banco 1 para cargar dato en el EEDATA (en el 16f84a no) y algo parecido pasaba en la escritura. ya esta resuelto. un saludo y muchas gracias

(creemos q esta resuelto claro...jejeje, xro vaya..si eso ya tendreis noticias d q no nos funciona)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #7 en: 12 de Marzo de 2007, 16:08:08 »
bueno, la cosa ya esta resuelta...o eso parece...cosa d la memoria q habia q cambia al banco 1 para cargar dato en el EEDATA (en el 16f84a no) y algo parecido pasaba en la escritura. ya esta resuelto. un saludo y muchas gracias

Jeje, esto me sospechaba, por eso te pedí que subas el código.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado xocas

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 2312
Re: PORQUE PUEDE DAR ERROR??
« Respuesta #8 en: 12 de Marzo de 2007, 16:40:42 »
no me explique bien, queria decir que es algo habitual no configurar los comparadores como entradas/salidas digitales antes de usarlos para ese fin.

por otra parte me alegro que lo hayas solucionado.

un saludo.