por Rota » 23 Abr 2007 00:29
gente, pra variar falei merd.....
Eu tambem tava encucado com essa mensagem, como a mensagem tinha a palavra calibration, eu ja pensei, caracas, se eu por ventura mudar acidentalmente o ultimo valor da memoria (que contem o valor para calibrar o oscilador interno), o mplab acerta novamente, que
maravilha.
Então eu mudava o valor (dentro do mplab: view-> program memory), mandava gravar, depois lia, e para o meu espanto, o valor voltava para o que veio de fabrica!!! que chique o compilador calibrava o micro e escrevia no ultimo endereço.
Hoje fui ver direito, não foi o mplab que calibrou o micro e escreveu no ultimo endereço, é que o MPLAB não deixa escrever nesse endereço, justamente para não perder o valor da calibragem do pic.
Se voce for em programmer-> settings->memory rangers desmarcar auto select memory areas and range e tentar colocar no endereço final o valor 03ff, o compilador não aceitara, só aceitara até 03fe.
Agora, se voce editar o arquivo pic12f675 (que esta dentro da pasta device), e tirar essa linha:
calmem (region=0x3FF-0x3FF)
ai sim, voce pode alterar o valor que esta no endereço 03ff que o mplab ira gravar no micro o valor que voce colocar la. (não aparece mais a
mensagem)
zielpunkt, eu não não usei nenhuma linguagem para fazer esse teste, eu alterei os valores dentro do mplab. Quando voce escreveu :
"Ele está te informando que já gravou o OSCCAL com o valor armazenado no ultimo endereço do mcu"
está correto?? pois o osscal esta na ram, o mplab não iria escrever na ram do pic, correto?
então resumindo:
no ultimo endereço da memoria de programa tem o comando RETLW XX aonde XX é o valor da calibragem,
na inicialização do micro tem esse bloco de comando:
call 0x3FF ; retrieve factory calibration value
bsf STATUS,RP0 ; set file register bank to 1
movwf OSCCAL ; update register with factory cal value
bcf STATUS,RP0
ele chama a subrotina em 3ff, que dela retorna em W o valor da calibragem e move para o registro OSSCAL.
a mensagem que o mplab apresenta, é informando que a memoria de programa não foi calibrada, ou seja, o programa do pic que esta na memoria do pc, foi transferido para o microcontrolador, menos o ultimo
endereço, que contem o valor de fabrica, e que o micro ja esta calibrado.
é isso mesmo??? o falei mais merd.....
marcelo