Estou com um pequeno problema, acho que jah entendi o q está acontecendo ... mas com a experiência de vcs pode ser que de uma idéia melhor ...
Tenho um programa que pega e grava senhas na memória de programa do pic, usava um 16f877 e tudo funcionava que era uma beleza !
usava um write_program_memory(0x7900,dado,16) e lá estava o dado gravado. Mas quando troquei o pic pelo 18f452 quando uso essa rotina ele grava 64bytes ao invés de gravar apenas os 16 que especifiquei.
Pelo que eu entendi o 18f452 sempre grava em blocos de 64bytes. ME CORRIJA SE HOUVER ALGUM ERRO NO RACIOCÍNIO !!!
ae que acontece o problema quando gravo na posição 0x7900 eu apago os dados que estavam gravados nas 3 posições seguintes (0x7910,0x7920,0x7930). Eu estou usando a seguinte alternative (se tiverem uma + interessante me ajudem).
Eu pego e leio a memória no endereço onde quero gravar.
read_program_memory(0x7900,buffer,64) e então altero o que quero e gravo novamente . Se alguém tiver algo a comentar, estou usando CCS !!!