TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: yuhe en 20 de Mayo de 2012, 16:48:27

Título: 10F202
Publicado por: yuhe en 20 de Mayo de 2012, 16:48:27
Hola amigos ,tengo un pequeño problemita  que me trae de cabeza .el problema es el siguiente y simple no logro que un pic10f202 me corra el programa lo he intentado todo ya por ultimo he intentado un simple parpadeo pero nada  ,la gracia esque mi pickit2 si lo programa y lo lee pero nada  no corre nada haber si me podeis hechar una mano amigos ,haber en que meto la pata


     @ DEVICE  MCLR_OFF
     @ DEVICE  intrc_osc

   ESPERA:
  pause 1000
  low GPIO.2
  pause 1000
  low gpio.2
  goto esperA
Título: Re: 10F202
Publicado por: doppel en 20 de Mayo de 2012, 22:19:36
Holas

las dos veces apagas el led!!! prueba en alguna de las dos encenderlo ;-)
Título: Re: 10F202
Publicado por: dogflu66 en 21 de Mayo de 2012, 19:45:00
Muy buena Hernán, yo eche un vistazo rápido hace tiempo y no me percate del fallo. :oops:
Título: Re: 10F202
Publicado por: yuhe en 22 de Mayo de 2012, 10:44:26
Perdon , lo copie mal pero en uno es high y en el otro es low . y aun de esa forma no va .lo he probado en 4 10f y nada :(
Título: Re: 10F202
Publicado por: MGLSOFT en 22 de Mayo de 2012, 11:20:25
En simulador anda??
No recuerdo bien de Basic, pero esta bien asi configurado el reloj interno??
Título: Re: 10F202
Publicado por: elreypic2 en 22 de Mayo de 2012, 12:12:27
Que tal Yuhe,

Bueno hay aqui dos problemas, el primero es que el pin GPIO.2 tiene la funcion de INTOSC/4, es decir; ese pin tiene que estar configurado como puerto, de lo contrario el pin lo que hace es sacar una señal cuadrada de 1MHz. Eso se hace forzando el bit 0 del registro OSCCAL. Pero aqui tambien esta el otro problema. El registro OSCCAL sirve para poner el reloj interno a la frecuencia correcta de 4MHz, lo que no se hace de forma automatica.
Leyendo el datasheet me di cuenta que el valor de calibracion se encuentra en la ultima dirección de memoria del micro, mediante una instruccion MOVLW XX donde ese XX es el valor de calibracion para OSCCAL. Esto significa que hay que tomar ese valor de XX para cargar el valor de calibracion. Luego tenemos que forzar el bit 0 del registro OSCCAL a que sea 0. Para lograr esto vas a tener que hacer uso del lenguaje ensamblador.

@ DEVICE  MCLR_OFF
'@ DEVICE  intrc_osc   Esta directiva no se usa ya que el micro no tiene otras opciones de oscilador. Por lo que puede eliminarla

asm
   ANDLW   0FEh   ;Enmascara el bit 0; para forzarlo a que contenga un valor 0
   MOVWF   OSCCAL ;Carga el valor de la calibracion y habilita el puerto GPIO.2 como puerto.
endasm  

   ESPERA:
  pause 1000
  high GPIO.2
  pause 1000
  low  gpio.2
  goto esperA

Olvidaba algo, como he de suponer ya has grabado el microcontrolar varias veces, lo que significa que tal vez has borrado tambien el contenido (MOVLW XX) de la ultima direccion de programa. Esto es mas critico ya que ahora vas a tener que buscar la forma de calibrar el micro. De acuerdo con el datasheet, siempre se debe leer el micro antes de borrarlo para respaldar ese MOVLW XX de la ultima direccion. De lo contrario lo perderas.

Saludos,


Elreypic.

Título: Re: 10F202
Publicado por: yuhe en 22 de Mayo de 2012, 13:35:52
Gracias amigos, una vez mas mi torpeza sin limites se carga unos cuantos micros :(, de nuevo gracias amigo por la respuesta tan rapidas :-/
Título: Re: 10F202
Publicado por: yuhe en 22 de Mayo de 2012, 15:40:18
Acavo de cargar un sof que acavo de ver en un foro de rc  y funciona perfecto :shock: :shock: :shock: :shock: :shock:   es decir que mis pequeñines aun tienen vida  , porfavor aguiel me puede poner un simple ejemplo de como configurar el 10f200 porfavor apagar y encender un led con eso  valdria es para ver como es la configuracion de los fuses  :oops: :(
Título: Re: 10F202
Publicado por: Nocturno en 23 de Mayo de 2012, 03:04:54
Estos son los que yo uso en un 10F222 y van bien. Está en lenguaje C, espero que puedas adaptarlo.

#include <10F222.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOMCLR                     //Master Clear pin enabled
#FUSES NOPROTECT                //Code not protected from reading
Título: Re: 10F202
Publicado por: dogflu66 en 23 de Mayo de 2012, 06:22:54
La verdad es que es un micro muy simple, solo tiene 3 fuses significativos, aparte de que sea conveniente leer el valor de calibración del reloj interno por si se utiliza en trabajos que requieren precisión en el manejo del tiempo.

(http://img59.imageshack.us/img59/339/fusespic10f202.jpg)