TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kurdo22 en 27 de Agosto de 2004, 04:16:00
-
Muy buenas, estoy haciendo una temporizacion en un pic 18F8720 y a la hora de hacer el preescalado me dan por defecto unos preescalados ¿ No puedo poner yo el preescalado que quiera?Gracias
-
Claro que si des de 1:2 hasta 1:256 mira en la pagina 131 (apartado 11.0) del DS39609B , lo puedes cambiar modificando el estado de los bits 0-2 del T0CON .

-
Lo he mirado y a lo que te refieres es que puedo escoger entre unos preescalados ya establecidos. A lo que yo me refiero es a poner un numero de precarga cualquiera, elegido por mi dependiendo de unos calculos para el tiempo, igual que en el 8051.
Tambien me gustaria saber si estos calculos son correctos:
Queiro temporizar 10 us con el timer0 y 16bits. Tengo un cristal de 20MHz
Frecuencia de oscilacion=20MHz
ciclo maquina = Frecuencia de oscilacion/4= 4MHz
tiempo unitario= 1/4MHz= 250 ns
tiempo total del timer = 2^16*250ns= 16,384 ms
16,384 mseg ----------- 2^16
10 us ------------------- x
X = (10us *2^16)/ 16,384 ms = 40
40 en hexadecimal deberia ser la precarga que debo meterle al timer para que me cuente 10 us.
En caso de no poder meter este numero, que creo que no se puede, ¿que preescalado de los que dan es el que mas se ajusta a los 10us?
-
Hola kurdo una pregunta, como conseguiste poner en marcha el 18F8720? Es que yo tambien quiero ejercitarme con ellos, pero su encapsulado TQFP80 me lo impide.
Si compraste una placa entrenador, donde la compraste? O sino, como conseguiste soldar este micro?
muchas gracias
salu2
-
Vale pues para los valores que has calculado, tienes que desactivar el prescaler activando T0CON,PSA y cuando (dentro del codigo ) quieras activar el timer le cargas el valor ( d"40" en decimal no en Hexadecimal si no me equivoco) al registro TIMR0L y 0x00 al TIMR0H
Ya nos explicaras que tal 

-
Pues voy a probarlo a ver si funciona. De todas formas, ¿mis calculos del preescalado son correctos?
En cuanto a como lo he puesto en marcha he diseñado yo mismo el circuito impreso, no he utilizado zocalos ni nada, simplemente un programador muy sencillo dento del circuito impreso para poder programarlo. Para soldarlo he utilizado estaño liquido que he aplicado en los pads he puesto el pic encima y he le he dado calor con un soldador con una punta muy fina. El estaño liquido funde a baja temperatura y por capilaridad se va a cada pad con su correspondiente patilla sin hacerse cortocircuitos. Claro que esto no funciona a la primera, hay que probar antes en otro lado. Tambiens e puede hacer con estaño normal si eres muy mañoso pero es mas complicado.
-
En mis calculos falta una cosilla:
40 es el numero de unidades de tiempo correspondiente a 10 us por lo tanto hay que restarsela a 2^16 para que cuente ese tiempo;
2^16 - 40 = 65496
65496 es la precarca que hay que introducir.
¿Son mis calculos correctos, se hace asi?
-
Je je je




Fijate que 20MHz/4 NO da 4MHz 



20M/4 = 5M
1/5M = 200nseg
una carga son 200nsegundos 10useg son 10.000nseg
10.000/200 = 50 es el valor a cargar al TIMER0

Lo has probado ya?
-
Estoy en ello. Valla fallo el mio, en lo mas sencillo. Gracias por echarle un vistazo, en cuanto lo pruebe os cuento.