Saludos a todos,
En una aplicación que estoy desarrollando necesito inicializar la EEPROM del PIC16F676 con algunos valores predefinidos, uso el compilador picc de Hi-Tech con las siguientes líneas de código:
//Inicializa la EEPROM
__EEPROM_DATA(0x02, 0x1B, 0x02, 0x7E, 0x02, 0xB0, 0x02, 0xF4);
__EEPROM_DATA(0x03, 0x41, 0x03, 0x8B, 0xAA, 0xFF, 0xFF, 0xFF);
//
Cuando abro el programa con el winpic v3.59, la memoria de datos me muestra justamente lo que le estoy inicializando, tal como se muestra en la imagen adjunta MEM_INI.jpg
El problema esta cuando programo el PIC y luego lo leo para verificar que los datos predefinidos están correctos, pero para sorpresa mía hay dos datos que se leen en cero (ver imagen MEM_READ.jpg), posiciones de memoria 0x0C y 0x0D.
Más datos curiosos: El programa del pic se graba perfectamente, excepto por los dos datos de la memoria EEPROM, he probado por lo menos con 8 PICs y lo más extraño es que solo 2 de los 10 me leen perfectamente el dato cargado en memoria, lo curioso es que estos dos pic no funcionan. En otras palabras, en los que funciona el programa no se puede inicializar correctamente la memoria, y los que dejan inicializar la memoria no hacen nada cuando se les programa.
Tengo dos programadores, por falta de presupuesto ambos son el GTP-07 pero no me han dado problema, hasta ahora.
Adjunto una imagen de los bits de configuración por si es de utilidad.
Saludos y gracias,
Diego.