TODOPIC
Microcontroladores PIC => Programadores => Mensaje iniciado por: micro_pepe en 27 de Agosto de 2006, 15:52:21
-
Hola, he programado unos pic con proteccion de codigo (El pic12f675), y ahora los puedo programar pero no me funcionan, he echo un programa de prueva que hace parpadear unos led, y en un pic nuevo me funciona, pero no en dichos pic.
Me gustaria saber si hay alguna forma de recuperarlos.
Saludos y gracias.
-
Hola micro_pepe, los PIC de la familia 12F llevan un reguistro que se llama OSCAL, es el encargado de la calibración del oscilador interno, para utilizar dicho reguistro lo que se hace es ir a la ultima dirección de la memoria de programa y ahí se encuentra una función RETLW con un numero que es el que calibra el oscilador.
Si estas usando el oscilador interno del PIC y por consiguiente si usas el reguistro OSCAL y en la ultima dirección de memoria no le grabas el RETLW puede estar haciendo lo que comentas.
¿Estas usando el oscilador interno?
¿Estas usando la función del OSCAL?
¿Que programa usas para la programación? ¿WinPIC o ICprog?
¿En que lenguaje programas?
Espero tu respuesta, un saludo.
Atte. CARLOS.
-
Hola, efectivamente estoy usando oscilador interno.
La funcion OSCALL no la estoy usando.
Para programarlo uso el WINPIC800 con el GTP-USB+, aunque creo recordar que cuando me paso este problema estaba montando el GTP-USB+, y algunos los programe con el EPIC.
Y estoy programando en CCS.
Saludos y gracias.
-
Hola micro_pepe, como yo programo en .asm no conosco el CCS, según lo que comentas el problema parece estar en el programa, pero para eso deberías hacer la pregunta en el foro de lenguaje C.
Un saluo y perdona la demora.
Atte. CARLOS.
-
yo tengo el mismo problema que micro_pepe y nadie me sabia responder. incluso lo achaque a una alimentacion insuficiente. indagare sobre el tema. no obstante, si micro_pepe da con la solucion estaria bien que la postease. saludos.
-
Hola, de todas formas Charly, como se solucionaria en asm, quizas encuentre una solucion.
Saludos y gracias.
-
si no tengo mal entendido, en C puedes incluir instruccines de asm
-
Efectivamente se pueden incluir instrucciones en asm, la forma de hacerlo es la siguiente:
#ASM
//instrucciones en asm
#END_ASM
Saludos.
-
Hola.
Es algo asi:
#ASM
ORG 0x000
CALL CALIBRAR
MOVWF OSCCAL
ORG 0x3FF
CALIBRAR RETLW 0x80
#END_ASM
//sigue programa en C
Saludos
-
Hola, supongo que el valor 0x3FF depende del tamaño de la memoria de programa, en el caso del pic12c675 como es de 1K, la ultima posicion es la 0x3FF.
Y el valor 0x80 es el valor que calibra el oscilador.
Probaré lo que me has dicho a ver si funciona.
Saludos y gracias.
-
Hola micro_pepe.
Efectivamente es asi como dices.
Saludos
-
Pues no me compila el CCS con ese codigo, a ver si alguien sabe como hacerlo en CCS.
Saludos y gracias.
PD: Por cierto MichaelKnight , a ti te ocurrio con el mismo pic, el PIC12F675, o tambien con algun otro.
-
a mi me dio el problema con un 16f676. perdona que aun no me haya puesto manos a la obra pero tengo examenes ahora y tengo que estudiar. espero probarlo pronto y comentarte el resultado.
-
Hola MichaelKnight, espero que terminases los examenes y con exito. ¿Hiciste la prueva? a ver si funcionan los pic.
Saludos y gracias.
-
perdona por la tardanza en responder pero ahora no tengo internet en casa. aun no he podido probarlo ya que ahora ando con el tema de ajuste de horarios y matricula. espero que pueda acabar pronto con este caos y poder dedicarme un poco a mis proyectos personales. te mantendre informado. No obstante, no seria mala idea intentar localizar la ultima version del CCS ya que sospecho que estaran entre sus mejoras la solucion a estos problemas. Hablo mas bien de una corazonada que de una cosa segura, pero creo q es importante probar. Saludos.