Autor Tema: configurando timer1 externo  (Leído 12236 veces)

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

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
configurando timer1 externo
« en: 27 de Abril de 2007, 11:51:55 »
Os parecerá una tontería, pero es la primera vez que intento hacerlo y no se como empezar.
Vamos a ver, como lo que quiero es utilizar un cristal externo para temporizar por timer 1 y así poder poner el pic en modo sleep, lo que necesito es configurar el timer 0 interno para que trabaje a 32kHz, y así poner el pic al menor consumo. y es que no tengo ni idea de como hacerlo.
Podrian ayudarme?
Gracias.
« Última modificación: 26 de Mayo de 2007, 17:31:47 por paco1980 »

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: timer 0 interno.
« Respuesta #1 en: 03 de Mayo de 2007, 20:11:18 »
una pregunta mñas, para que pic es? gama 16 o gama 18? supongo q es en CCS o C18?
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #2 en: 04 de Mayo de 2007, 06:00:56 »
Es un 16f917.
Creo que ya se como hacerlo, pero hasta que no consiga dicho pic no puedo probarlo, ya que ahora solo dispongo del 16f877, y ese no lleva oscilador interno.
Lo que más me trae de cabeza es lo del timer 1.
Ya que quiero configurarlo como contador asíncrono externo, y los pulsos introducirlos con un cristal externo.
¿Esto puede ser?
¿Tienes idea?
Nota: todo esto es para desbordar el timer 1 estando el pic en SLEEP.
Un saludito y gracias.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: timer 0 interno.
« Respuesta #3 en: 04 de Mayo de 2007, 20:46:40 »
Te estás liando bastante, a ver, si quieres que el timer1 funcione como contador de pulsos externos, no te hace falta ningun cristal.

En cambio, si quieres usar el timer1 como una rtc o que sea la fuente de reloj para otros periféricos, se le puede enchufar un cristal de externo.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: timer 0 interno.
« Respuesta #4 en: 05 de Mayo de 2007, 02:58:03 »
hola segun lo que lei del datasheet de ese pic, si se puede desbordar asyncronamente el timer1 para despertarlo por overflow del sleep.  :-/ cual es el sigueinte paso?
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #5 en: 07 de Mayo de 2007, 11:20:18 »
No se si estaré equivocado. Lo que yo pretendía era colocarle un cristal a los pines correspondientes del timer 1. ( De forma similar a como se coloca el típico cristal para timer 0). y poder calcular tiempos mientras el pic esté durmiendo.
Pero he probado y no consigo que me haga nada. ¿ Es factible lo que quiero hacer?.
Un saludo.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: timer 0 interno.
« Respuesta #6 en: 07 de Mayo de 2007, 14:33:48 »
??? un cristal? no amigo en ese pin se coloca una entrada de pulsos de reloj (1 y 0) el datasheet no se refiere a poner un cristal ese va en los repetivos pines OSC1 OSC2  :-/ derepente no te entendi, mejor mandanos un pantallazo de tu  circuito a ver que estas haciendo  :mrgreen:
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado garopa

  • PIC10
  • *
  • Mensajes: 24
Re: timer 0 interno.
« Respuesta #7 en: 07 de Mayo de 2007, 21:59:38 »
Manejo de los timers en c:

#INT_TIMER1
void interrupcion_timer1()
{
   setup_timer_1(T1_DISABLED);
}

#ZERO_RAM
void main()
{
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);

enable_interrupts(int_timer1);
   enable_interrupts(global);

 set_timer1(64429);
sleep();
   LCD_PUTC("\fz"); //Esto lo uso para ver si se interrumpe o no, faltaría el include del lcd y el lcd_init() y todo eso que tb lo tengo puesto
}


Ejemplo Basico del funcionamiento.
Suerte.

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #8 en: 08 de Mayo de 2007, 04:03:22 »
Pero para una entrada de pulsos de reloj, ya hay que poner otro componente en el circuito, y por lo tanto, el consumo que logras bajar durante el sleep, te lo estas comiendo por otra parte con este dispositivo.
¿no es así?.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: timer 0 interno.
« Respuesta #9 en: 08 de Mayo de 2007, 09:42:01 »
sip, aqmigo podrias colgar tu circuito? para darte mas luces sobre tu asunto :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #10 en: 09 de Mayo de 2007, 07:39:25 »

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #11 en: 09 de Mayo de 2007, 07:40:39 »
como se insertan las imágenes?
es que no se como colgar el circuito

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #12 en: 09 de Mayo de 2007, 07:53:05 »
Bueno, como no se mandar imágenes, probaré con los srchivos adjuntos.
En la imagen que envío solo aparece el pic 18f4331 (he puesto este, pero puede ser que utilice el 16f917, según el que localice antes).
Le he puesto dos cristales, uno para el timer 0 ( El cual voy a intentar programar para poder suprimirlo, y otro para que el timer uno reciba pulsos durante el sleep. Creo que es bastante sencillo. ¿ Con este esquema recibiría el timer 1 pulsos desde este cristal?. Y de ser así, como se programaría el timer 1?
Gracias y un saludo.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: timer 0 interno.
« Respuesta #13 en: 09 de Mayo de 2007, 11:39:48 »
pues viendo el datasheet del 18F4331 observo que tu circuito esta correcto  :-/  en cuanto a la programación te sugiero que leas la parte del timer1 y nos posteas tus dudas despues de su respectiva lectura,

RA7-RA6:



RC0-RC1:



ahora segun el data sheet del pic 16F917 estos pines estan juntos  :? o mejor dicho conmutados asi:

y lei el timer1 y no hay mucha info, decia algo de un crital interno de 32.768khz  :-) se puede hacer mucho con ese cristal jejeje , primero define con que pic vas a aplicar tu idea y entonces atacamos el problema . exitos amigo!!! no sabia de esa cualidad jejejej leyendo tu post me acabo de enterar de eso.  :)


PD: para subir imagenes primero debes registarte en alguna pagina internet que te permita alojar las imagenes en linea, por ejemplo hay las gratuitas como http://imageshack.us/ yo me suscribi (es gratuito) y listo, te aparece una barra en tu navegador para subir tus imagenes desde tu pc o desde cualquier pagina mientras estas navegando, luego una vez que subes la imagen copias el link : DIRECT LINK


y listo luego pegas la imagen haciendo cliclk en el boton " insertar imagen  " , te sale esto

Código: [Seleccionar]
[img]  [/img]
y colocas el link copiado entre los img

Código: [Seleccionar]
[img]http://img408.imageshack.us/img408/5458/66228205on7.jpg[/img]




a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: timer 0 interno.
« Respuesta #14 en: 09 de Mayo de 2007, 12:12:33 »
Gracias micro-cadaver.
Como ya he dicho en ciertas ocasiones, no me manejo bien ni con el ensamblador, ni con el ingles.
Según el datasheet del 18f4331, y si no lo he entendido mal, el timer1 , con un cristal externo como el de la imagen que mandé. puede funcionar durante el sleep. (vamos a basarnos en el 18f4331. ok?). pero no sé que funciones del ccs debo utilizar para configurarlo como tal, ni para trabajar con el. Eso es lo que me gustaría saber, con que funciones puedo programarlo. Ya que solo se configurarlo como contador interno.
Gracias.