Autor Tema: Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT  (Leído 27308 veces)

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

Conectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #15 en: 03 de Marzo de 2007, 05:30:15 »
Fe de Errata:

Gracias al amigo Marioguillote (cara de perro) que lo ha detectado, corrijo un bug en el post original de este hilo:

Donde pone:

* El TIMER1 es un contador de 16 bits que se incrementa cada 4 ciclos de Reloj (FOSC *4). A este tiempo le vamos a llamar Tick de TIMER1.

Debe poner:

* El TIMER1 es un contador de 16 bits que se incrementa cada 4 ciclos de Reloj (FOSC /4). A este tiempo le vamos a llamar Tick de TIMER1.

Cambiando el símbolo * por el / ya que efectivamente un Tick de reloj se produce cada cuatro ticks del oscilador y por tanto debemos dividir por 4 en vez de multiplicar por 4.

Gracias Mario.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #16 en: 04 de Enero de 2008, 02:18:01 »
Hola RePic.

Queria saber si es necesario la variable T1, yaque su valor es tomado del timer 1 justo despues de poner este a 0. Si no lo fuera pues entonces el valor, en ticks de timer1, del ancho del pulso en alto no serai mas que t2 y por ende no habria necesidad del: t2 - t1. Eso si esq no me equivoco y esq t1 puede llegar a tomar un valor diferente a 0, quisiera q me aclares esa duda.

Gracias.
salu2 8)

Conectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #17 en: 04 de Enero de 2008, 09:55:11 »
No, T1 no se carga inmediatamente después de poner el TIMER1 a cero, sino transcurrido el tiempo necesario después de poner el TIMER1 a cero para que llegue la primera interrupción del primer flanco. y T2 se carga con el tiempo que transcurre tras esta primera y hasta que nos llega la segunda, y es entonces cuando ponemos a cero de nuevo TIMER1 y volvemos a esperar que llegue una nueva primera interrupción. Y como el cálculo T2-T1 lo hacemos en main es por lo que necesitamos T1 y T2, para realizar el cálculo independientemente del estado de las interrupciones en ese instante.  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #18 en: 04 de Enero de 2008, 20:21:41 »
Ah no disculpa, esq en "Midiendo un pulso. 4ª Parte" haces como te digo (pones el TMR1 a 0 y ahi mismo lo cojes) solo que pense q era lo mismo solo q aqui medias el tiempo en alto nomas.

Bueno entonces porq aqui lo haces de esa forma y en la 4ta parte asi ? Por eso te preguntaba de que la variable "t1" siempre valdria 0.

=S!


salu2 8)

Desconectado xelieve

  • PIC10
  • *
  • Mensajes: 23
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #19 en: 27 de Febrero de 2016, 11:07:56 »
Buenas, disculpe la necrofilia pero estoy con una duda enorme, logra hacer la interrupcion pero no logro hacerlo para pulsos mayores a 13 milisegundos, quiero hacer un velocimetro pero para tiempos mayores ya no logro conseguir bien la señal.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #20 en: 27 de Febrero de 2016, 13:35:54 »
Eso por que el timer1 es de 16bits.. Si hago un par de calculos:

4 / 20Mhz = 200ns cada ciclo del PIC

200ns * 2¹⁶ = 13.10ms

Es decir que lo maximo que podes capturar con 16 bits es 13ms. La solucion es simple.. tenes que activar la interrupcion del timer1, entonces cada ves que entra le sumas 1 a una variable. Cuando inicia el nuevo "pulso" a medir tenes que poner a 0 esa variable.

Lo que terminas haciendo es contar cuantas veces el timer1 paso de 0xFFFF a 0x0000. Y sabiendo eso calcular el valor. Aunque vas a tener que pensar un poco por la forma en que esta realizado el programa. A no ser que hagas un par de cambios.

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #21 en: 01 de Marzo de 2016, 05:16:39 »
ASUUUUUUU MECHA LA VERDA VEO QUE HAY GENTE MUY BRILLANTE LOS FELISITO ME SORPRENDE LO ABANSADO QUE ESTAN EN PIC C
ALGUIEN ME PUEDE ORIENTAR CON LAS INTRUCCIONES PARA PROGRAMAR LOS PIC EN C

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 627
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #22 en: 01 de Marzo de 2016, 09:08:56 »
Buenas, disculpe la necrofilia pero estoy con una duda enorme, logra hacer la interrupcion pero no logro hacerlo para pulsos mayores a 13 milisegundos, quiero hacer un velocimetro pero para tiempos mayores ya no logro conseguir bien la señal.

Necrofilia?   :shock:  :? WTF

creo que me equivoque de foro  :lol: , mejor vuelvo luego
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #23 en: 01 de Marzo de 2016, 16:23:57 »
e buscado y no encuetro las instrucciones del lenguaje c para los pic alguien me puede desir donde encuentro un prontuario de las instruciones y lo que hacer en lenguaje c para pic

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Serie Técnicas en C : Midiendo un pulso. 1ª Parte. Tiempo en Alto con INTEXT
« Respuesta #24 en: 01 de Marzo de 2016, 17:03:29 »
e buscado y no encuetro las instrucciones del lenguaje c para los pic alguien me puede desir donde encuentro un prontuario de las instruciones y lo que hacer en lenguaje c para pic

No entiendo a que te referis con "instrucciones". Si queres aprender C, cualquier tutorial de C te va a servir.

Si lo que queres saber es sobre cada una de las funciones de algun compilador, vas a tener que buscar el manual en internet, Ejemplo si quisiera saber todas las funciones que trae por defecto CCS, buscaria en google "CCS Manual" y ahi aparece un pdf con todas las opciones.


 

anything