TODOPIC
Microcontroladores PIC => - Niple - => Mensaje iniciado por: djim en 14 de Abril de 2011, 15:51:03
-
Buenas... Recientemente me actualize a la v.5 y necesitaria saber como utilizar el timmer 0 interno, estoy leyendo el tema pero no termino de comprenderlo. Como primera practica quiero hacer un timmer de 500ms para que encienda un led, si esta encendido que lo apague, un tipo secuenciador. Desde ya cualquier documento explicacion me biene de 10. Muchas gracias!!! :D
PD: Estoy utilizando un 16F877A, XT 10mhz... Algo asi seria el esquema:
Inicio
Enciende Led
500ms (tiempo por interrupcion)
Apaga Led
500ms (tiempo por interrupcion)
Inicio
DJIM
-
Encontre este tuto sobre el tmr0 me parecio muy bien explicado, ahora lo llevemos a la practica. Aqui adjunto el documento, saludos y exitos!!!
DJIM
-
Para implementar el retardo en Niple solo tienes que, una vez configuaradas las patillas que vayas a utilizar, bien puedes utilizar una temporizacion por bucles o temporizacion por interrupcion.
En ambos casos al seleccionar el bloque adecuado del exporador de la derecha, Niple pide paso a paso en ventanas emergentes los datos que te interesen hasta alcanza r el tiempo que deseas.
Si es la temporizacion por ciclos solo hay que rellenar los datos de si el tiempo es fijo o variable y sus valores. Niple crea el codigo hasta lograr el tiempo indicado, pero eso si cuando llega a esta parte del programa el micro no hace otra cosa que no sea esa temporizacion.
Si es por interrupcion debes primero configurar el TMR0, se hace en temporizaciones por bucles, se configuar el predivisor el origen de la señal. A continuacion debes:
1º de activar la configuracion que deseas en este caso la TMR0. Sigue los pasos que te va pidiendo
2º Insertar la interrupcion requerida, con lo cual Niple te crea otro entorno para realizar lo que quieres que realice la interrupcion.
Eso es todo
Fermin
-
Amigo djim
Te adjunto un proyecto basico de lo que pretendes para que veas como seria la forma mas o menos de realizarlo.
Fermin
-
Amigo djim
Te adjunto un proyecto basico de lo que pretendes para que veas como seria la forma mas o menos de realizarlo.
Fermin
FER_TACA
Te comento que el ejemplo que enviaste debe ser con la ultima version de niple, yo tengo la version 5.5.1 y no hay posibilidad de configurar el contador del timer 0, (o no se como) lo unico que puedo configurar es el prescaler, pero con eso no hay presicion ni la posibilidad de generar una interrupcion con un intervalo menor a 0,5 mS que seria con una señal de un 1Mhz el prescaler en 2 y con el contador en 255 el cual no se puede modificar.
es decir seria 1 Mhz / (2 * 256) = aprox 0,5 mS.
Si sabes como te agradeceria.
Saludos.
-
Mi version es la 5.5.8FER_TACA
Te comento que el ejemplo que enviaste debe ser con la ultima version de niple, yo tengo la version 5.5.1 y no hay posibilidad de configurar el contador del timer 0, [/quote]
-
Ok, gracias.
La verdad que asi como en la version 5.5.1 el timer0 no se puede usar porque no tenes la principal opcion que es poner el dato en el contador, es decir en el reg tmr0 (01H).
Una verdadera lastima.
-
pero que extraño, yo estoi usando una version mas vieja y siempre consigo poner datos en T0.
Tienes que pinchar el cajón "reg. nuevo" y lo encuentras al "T0" y le pones el valor.