Hola amigos,
Soy nuevo tanto en el foro como en el apasionante mundo de los microcontroladores. Estoy empezando en esto con el PIC 12F629, y por el momento consigo hacer cosas super basicas, principalmente en MikroC, ya que no me he puesto en serio con ensamblador (aunque conozco algunas instrucciones basicas).
El caso es que usando en MikroC la funcion Delay_ms(5000), que supuestamente temporiza 5 segundos, me doy cuenta de que probando varios PIC, cada uno hace una cosa (todos entre 4 y 4.5 segundos aproximadamente, y solo alguno se acerca a los teoricos 5 segundos). Se que en la ultima posicion de la memoria de programa FLASH esta el valor de la calibracion, pero tengo una duda que supongo que es de principiante. He buscado en el foro y he encontrado cosas sobre este tema tan hablado, pero no resuelven mi duda, por lo que queria exponerla aqui a ver si alguien me podia ayudar.
Por lo que he entendido, tienes guardada en la memoria de programa FLASH el valor, pero nada mas iniciar el programa has de leerlo y cargarlo en el registro OSCCAL. El caso es que no se como leer el valor de una posicion concreta de la memoria FLASH de programa con MikroC. Como he buscado en la ayuda del compilador y tampoco he llegado a encontrar nada, he probado a meter un trozo de codigo en ensamblador nada mas empezar el programa, usando asm {}, pues en ensamblador es facil leer el ultimo valor de la memoria de programa con la funcion call para luego meterlo en OSCCAL. Pero tampoco he tenido suerte, ya que al compilar me sale un monton de errores relativos a que el compilador no entiende lo que he puesto en ensamblador...
¿Alguien me podria ayudar? Muchas gracias.