Autor Tema: Alguien a usado el modulo CTMU de los PIC18F ??  (Leído 11059 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Alguien a usado el modulo CTMU de los PIC18F ??
« en: 13 de Julio de 2012, 00:13:52 »
Necesito medir tiempos de ocurrencia de un evento con precision, y lei en la documentacion de mi PIC que se puede utilizar este modulo para hacer esto y muy bien, pero no encuentro documentacion que me ayude a comprender como se utiliza...
Alguna ayudita please ?? :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #1 en: 13 de Julio de 2012, 00:27:19 »
Ninguna de las Notas de Aplicación da en el clavo?
No contesto mensajes privados, las consultas en el foro


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #3 en: 13 de Julio de 2012, 08:15:49 »
Ninguna de las Notas de Aplicación da en el clavo?
Esa y unas 50 mas busquedas hice, y no encuentro algo a medida que me deje claro como debo usarlo, es un modulo complejo, que permite muchos usos, y la nota de Microchip al respecto solo muestra cuales aplicaciones puedes tener, pero no da un ejemplo claro de como usarlo para medir un tiempo entre flancos de una misma señal, solo muestra como hacerlo usando los gates del modulo.... :oops: :oops:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #4 en: 13 de Julio de 2012, 08:17:26 »
¿No te vale el CCP?
Si no logro usar el CTMU, seguramente acudire a el, aunque aun no lo use para medir tiempos, solo para temporizar en forma precisa... :? :oops:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #5 en: 13 de Julio de 2012, 09:20:20 »
En el manual de referencia aparece esto:

11.7  MEASURING TIME WITH THE CTMU MODULE
Time can be precisely measured after the ratio (C/I) is measured from the current and
capacitance calibration step by following these steps:
1. Initialize the A/D Converter and the CTMU.
2. Set EDG1STAT.
3. Set EDG2STAT.
4. Perform an A/D conversion.
5. Calculate the time between edges as T = (C/I) * V, where I is calculated in the current
calibration step (Section 11.5.1 ìCurrent Source Calibrationî), C is calculated in the
capacitance calibration step (Section 11.5.2 ìCapacitance Calibrationî) and  V is
measured by performing the A/D conversion.
It is assumed that the time measured is small enough that the capacitance COFFSET provides a
valid voltage to the A/D Converter. For the smallest time measurement, always set the A/D Channel Select register (AD1CHS) to an unused A/D channel; the corresponding pin for which is not
connected to any circuit board trace. This minimizes added stray capacitance, keeping the total
circuit capacitance close to that of the A/D Converter itself (4-5 pF). To measure longer time intervals, an external capacitor may be connected to an A/D channel, and this channel selected when
making a time measurement.


Pero realmente creo que el CCP es más indicado para medir tiempos; si te animas y tienes dudas lo vemos.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #6 en: 13 de Julio de 2012, 09:26:20 »
Esto lo lei unas 20 veces, pero no encuentro un ejemplo implementado para ver exactamente como usarlo. :( :(

Lo del CPP lo has hecho alguna vez??
Puedo usarlo a traves de un flag o algo a traves de interrupcion??  :shock: :shock:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #7 en: 13 de Julio de 2012, 10:42:27 »
Con el ctmu no te puedo ayudar, nunca lo he usado, ni leido como funciona.

pero el ccp si te sirve para capturar entre flancos de subida o de bajada, tu lo configuras, y como base de tiempo tienes el timer1. todo esto con interrupciones.

en que estas programando?
"Nada es imposible, no si puedes imaginarlo"

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #8 en: 13 de Julio de 2012, 10:46:45 »
En C de CCS, pero si tienes ejemplos en C18 o Hitech, pasamelo que lo convierto... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #9 en: 13 de Julio de 2012, 11:13:12 »
Te pongo este ejemplo, aca leia el ancho de un puslo, primero configuro en flanco de subida y luego en flanco de bajada. cualquier duda con gusto te explico
PD. ponle el geshi porque no se como ;-)

Código: [Seleccionar]
#include <16f887.h>
#fuses intrc_io,nowdt,noput,nomclr,protect,nolvp
#use delay(clock=8M)
#define LCD_ENABLE_PIN  PIN_D3
#define LCD_RS_PIN      PIN_D1
#define LCD_RW_PIN      PIN_D2
#define LCD_DATA0       PIN_D4   
#define LCD_DATA1       PIN_D5   
#define LCD_DATA2       PIN_D6   
#define LCD_DATA3       PIN_D7
#include <lcd.c>


#define t1  0.0000005//4/osc=4/8000000=0.5x10(-6)
int1 ccp1_f=0,fe=0;
void config()
{
   setup_ccp1(ccp_capture_re);//configuro en flanco de subida
   setup_timer_1(t1_internal|t1_div_by_1);
   enable_interrupts(global);
   enable_interrupts(int_ccp1);
   lcd_init();
}
void frecuencimetro()
{
   unsigned int16 val_t1=0;
   float tiempo=0,frec=0;
//si "fe" esta en 0, entonces leyo en flanco de subida
   if(fe==0)
   {
      setup_ccp1(ccp_capture_fe);
      set_timer1(0);
      fe=1;
   }
   //cuando entro por flanco de bajada
   else
   {
      setup_ccp1(ccp_capture_re);
      fe=0;
      val_t1=get_timer1();
      tiempo=2*t1*(float)val_t1;
      frec=1/tiempo;
      //lcd_putc("\f");
      lcd_gotoxy(1,1);
      printf(lcd_putc,"frec=%f   ",frec);
   }
   
}


void main()
{
   config();
   while(true)
   {
      if(ccp1_f)
      {
         ccp1_f=0;
         frecuencimetro();
      }
   }
}

#int_ccp1
void pulsos()
{
   ccp1_f=1;
}

"Nada es imposible, no si puedes imaginarlo"

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #10 en: 13 de Julio de 2012, 11:50:32 »
Para CCP no te sirven los ejemplos de RedPIC  :roll:
 
http://www.todopic.com.ar/foros/index.php?topic=14427.0
No contesto mensajes privados, las consultas en el foro

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #11 en: 13 de Julio de 2012, 12:10:33 »
Para CCP no te sirven los ejemplos de RedPIC  :roll:
 
http://www.todopic.com.ar/foros/index.php?topic=14427.0

++;

cierto, tambien eso te ayudaria mucho, de hecho tambien puedes medir el puslo usando la interrupcion externa ;-)
"Nada es imposible, no si puedes imaginarlo"

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #12 en: 13 de Julio de 2012, 12:18:48 »
En un muy conocido libro, donde se programa en CCS:

"compilador ccs y simulador proteus para microcontroladores pic"

En la página 145 te explica y te da un ejemplo para lo que deseas.
« Última modificación: 13 de Julio de 2012, 12:51:16 por PCCM »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #13 en: 13 de Julio de 2012, 12:25:02 »
Te dejo el link de un muy conocido libro, donde se programa en CCS.

http:...........................Compilador-C-CCS-e-Simulador-Proteus-para-Microcontroladores-Pic

En la página 145 te explica y te da un ejemplo para lo que deseas.


 :? :? :?, creo que no esta permitido ese contenido en el foro
« Última modificación: 13 de Julio de 2012, 12:55:27 por rivale »
"Nada es imposible, no si puedes imaginarlo"

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Alguien a usado el modulo CTMU de los PIC18F ??
« Respuesta #14 en: 13 de Julio de 2012, 12:51:40 »
Tienes razón, ya lo corregí.


 

anything