Autor Tema: Necesito una ayudita con prog. para un PIC 16F84A  (Leído 2070 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
Necesito una ayudita con prog. para un PIC 16F84A
« en: 04 de Mayo de 2006, 23:19:05 »
Estoy trabajando con un PIC16F84A a 4MHz para mover un servo , la cosa es que necesito moverlo 90 grados a la derecha y luego de 1 hora y media moverlo 90 grados hacia la izquierda....como lo estoy haciendo??.... tengo un circuito temporizador que me temporiza +- 1 hora y media, esta señal la envio a RB0/INT para iniciar la interrupcion, para lograr el manejo del servo utilizo el desbordamiento del TMR0 sin prescaler cargado con un valor de d-"90" para obtener los 100 us que utilizo como base....hasta aca todo ok, pero como lo hago??? debo activar los bit  GIE, T0IE y INTF del registro INTCON al comienzo del programa, o puedo activar solamente los bit GIE e INTF al comeinzo, para solamente responder a la interrupcion probocada por la señalización del circuito temporizador, y luego una vez activado el Servicio de Interrupcion activar el otro bit "T0IE" para activar la interrupción por TIMER0 y con esto obtener los periodos y el DUTYCICLE deceado para poder controlar el posicionamiento del servo????

Toda ayuda, idea todo sera bienvenido
« Última modificación: 04 de Mayo de 2006, 23:24:46 por Gjalken »

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Necesito una ayudita con prog. para un PIC 16F84A
« Respuesta #1 en: 10 de Mayo de 2006, 14:06:05 »
Lo que puedes hacer es lo siguiente:

Para configurar el Timer0 como temporizador hay que limpiar el bit T0CS OPTION_REG<5>):

bcf     OPTION_REG,5

Unicamente tienes que leer el valor del INTCON,2 que se activa cuando hay un sobreflujo del timero (cuando pasa de FFh a 00h), lo que si tienes que asegurarte de limpiarlo nuevamente para los siguientes usos.

Saludos  :mrgreen:
¡¡¡Viva México cabrones!!!

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
Re: Necesito una ayudita con prog. para un PIC 16F84A
« Respuesta #2 en: 12 de Mayo de 2006, 19:51:54 »
Bueno he echo algo, cambie la interrupcion del TMR0 por retardos, empieza el programa y mando a dormir al pic (SLEEP) y configuro la interrupcion por flanco de bajada (1->0) la atencion de interrupción, primero verifica el estado anterior de una variable "Lado" ( que me sirve para indicar hacia que lado estaba el motor, en 0º (derecha), o en 90º (izquierda)), y dependiendo del estado anterior ejecuta una rutina que mueve 15º el motor cada 1 segundo y se detiene al llegar al fin, a esperar una nueva interrupcion, hasta ahi suena todo biuen y estaba feliz por que creia que lo habia logrado, mas cuando lo probe, sorpresa, el pic atiende la interrupcion ya sea por flanco de subida como por flanco de bajada, y no se que puede ser,  les dejo el codigo a ver si me pueden ayudar (esta en .asm)
NOTA: el archivo Retardos.inc es el que trae el libro PIC16f84A de la editorial RA-MA.


 

anything