Gracias por tu consejo omix, veo que la función que has escogido es bastante más simple que la mia pero, hay algo que no entiendo: ¿no deberías usar un int16 en vez de un int8? Lo digo porque la palabra de un PIC18 es de 16 bits...
La verdad es que a conforme voy avanzando me doy cuenta de cosas que podía haber hecho mejor; por ejemlo, escribir de forma predictiva: si en vez de borrar el PIC y grabarlo entero, vas borrando y grabando("begin erase programming cycle" en vez de "chip erase" + ciclos de "begin programming only cycle") puedes ahorrar mucho tiempo, pues tienes la posibilidad de leer antes de escribir y si el valor es el mismo no escribes nada(leer siempre es más rápido que escribir
); de esta forma consigues que cuando se graba siempre el mismo código(ligeramente modificado) el tiempo de grabación sea mucho menor.... ¿Tú lo haces así?
En fin, queda claro que la primera vez que haces las cosas no salen como deberian... pero, al menos en mi caso, como se trata de mi PFC dejaré las mejoras para un futuro pues si no veo que no termino nunca
.
Saludos