TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: FirmSoft en 04 de Noviembre de 2004, 21:15:00
-
Es solo una simple duda... quisiera saber si el tiempo que tarda el PIC en leer la eeprom, varia segun el dato grabado en la misma... porque tengo un programa que estoy haciendo y cuando en la eeprom no hay datos, se comporta de una manera, cuando si hay datos, cambia el comportamiento... es raro... me doy cuenta del comportamiento porque voy seleccionando con un pulsador el dato que quiero leer... y el salto de una posicion donde hay info hasta otra donde tambien hay info, varia mucho. Espero haberme hecho entender
Gracias y Saludos!
-
Pues leer un 0x00 debera tomar el mismo tiempo q leer un 0xFF
![loco loco]()
Ya q al ejecutar cada instruccion el micro, siempre tarda 4 ciclos de reloj, es independiente de los datos q estes manejando.
Estas usando alguna rutina para procesar los datos una vez leidos? (ej: convertirlos a ascii par mostrarlos en un LCD) eso si podria generarte una diferencia de tiempos.....
-
Gracias por la respuesta, he encontrado que el problema esta en la lectura y comparacion del ADC, no es en la lectura de la eeprom... me esta volviendo loco este ADC, ya que actua de manera diferente segun como mueva el preset para variar el dato entrante.... Una pregunta... Alguien sabe como puedo convertir sin perder datos esos 10 bits del ADC a 8 bits comunes, para manejarlo comunmente con las instrucciones de resta y demas... es que es engorroso trabajar con 2 registros para las comparaciones
... si alguno tiene alguna idea... pues Bienvenida!!!! ... Gracias y saludos!
-
El bit de configuracion ADCON1,ADMF te permite "alinear" el resultado de la conversion sobre derecha o izquierda...
entonces luego puedes elegir entre trabajar con los 8 bits mas significativos, o los 8 menos...
-
Gracias amigo!, me a sido muy util la informacion que me otorgas... una ultima consulta... tu alguna vez has usado para comparaciones el ADC... quisiera saber si perder los dos bits menos significativos (1 y 2) generaria algun gran error en el trabajo... sabes, lo tenia configurado y trabajaba con los bits menos significativos quitando los mas significativos, pero el error era inmenso, actua muy raro... Espero no haberte mareado, gracias por las respuestas anteriores. Saludos!
-
bueno, creo q el hecho de perder los 2 bits mas significativos generaria un error mas q considerable.. sobre todo, pq tendrias codigos repetidos!
pero depende de tu aplicacion q tan importante es la presicion de los valores q manejas, tu sabras evaluarlo.
-
FirmSoft, no se si te sirva de ayuda, pero según el libro de Angulo de PIC16F84 la lectura de la EEPROM de datos tarda aproximadamente unos 10 ms, que por cierto es bastante.
Saludos,
-
Mejor me pondre las pilas, sere menos perezoso y utilizare los 2 registros (10 bits) para las comparaciones... asi sera todo mas exacto. Gracias por tu ayuda!
-
Carlete, el proceso de escritura en la EEPROM es el que se tarda 10 mS debido a que esta temporizado por un sistema interno y q aparte se realizan dos procesos: uno de borrado previo y otro de escritura, todo dentro de esos 10 mS.
Un ciclo de lectura tarda lo mismo q una instruccion NOP (o cualkiera que consuma TOSC/4)
-
Tienes razón fenix_jn, me confundí con la escritura que es el que dura aproximadamente 10ms.
Gracias por la corrección sino mas que ayudar a FirmSoft, lo iba a confundir ![loco loco]()
Saludos,
-
Todo Aclarado!!! ... pense que la lectura demoraba lo mesmo que la escritura
... ahora sip... Gracias por la ayuda! y hasta pronto!!
-
No, no dura lo mismo. Qué tardas más en hacer? Escribir o leer? Con las memorias ocurre lo mismo. Tienes que enviar la dirección (igual que para leer) y luego escribir. Para que quede bien guardado en memoria y no haya problemas, se suele dejar un tiempo mayor. Se trata de no arriesgarte a intentar escribir algo con poco tiempo o justo y que, al final, no lo escriba, porque la escritura es un proceso "delicado".
Para leer, no hay problema. Es, simplemente, tomar el dato de una dirección y no hay tanto problema con tiempos.
Un saludo.