rpm del motor
TRANSCRIPT
uControl > Programación de Microcontroladores > CCS, SDCC, C18, C30 y otros "C". (Moderador: Ariel) > Contar pulsos con timer en ccs
uControl
Agosto 08, 2012, 08:07:49
Bienvenido(a), Visitante. Por favor, ingresa o regístrate. ¿Perdiste tu email de activación?
Ingresar con nombre de usuario, contraseña y duración de la sesión
6Siempre Ingresar
Buscar
IN IC IO A Y U D A BUSCAR INGRESAR REGISTRARSE
Páginas: [1] 2 Ir Abajo
« anterior próximo » IMPRIMIR
Autor Tema: Contar pulsos con timer en ccs (Leído 7048 veces)
0 Usuarios y 1 Visitante están viendo este tema.
agustin156 PIC10F
Desconectado Mensajes: 32
Contar pulsos con timer en ccs « : Septiembre 01, 2010, 07:15:43 »
buenas tardes amigos, resulta que quiero medir las rpm de un motor con un sensor de efecto hall el cual ya esta
montado y funcionando a la perfección. El problema es que no se como contar los pulsos con los timers del pic. Probé varias cosas pero no lo puedo hacer funcionar. Alguien me podría dar una mano para configurar los timers. El pic es un 16f877A.
Gracias y saludos.
En línea
Suky **----- ^^ ------** Moderador dsPIC
Desconectado
Sexo: Mensajes: 5182
Implementando DNP sobre GPRS!
Re: Contar pulsos con timer en ccs « Respuesta #1 : Septiembre 01, 2010, 07:20:42 »
Muéstranos que has hecho.
Saludos!
En línea
* Tienda Micros-Designs - SkP32, Sk2550, LPC1114.
* Comunicación DNP3 sobre TCP/IP - (Capa de enlace)
agustin156 PIC10F
Desconectado Mensajes: 32
Re: Contar pulsos con timer en ccs « Respuesta #2 : Septiembre 01, 2010, 07:42:38 »
Gracias Suky por responder, esto es lo que intente
Código:
por lo que vi, el retardo debería generarlo con otro timer. A esto lo simule en proteus ingresando por el pin C0 una onda cuadrada.
Saludos.
5
6
#include <16f877a.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NODEBUG,BROWNOUT,NOCPD,NOWRT
#include <flex_lcd.c>
void main()
int16 pulsos;
lcd_init();
while(1) setup_timer_1(T1_EXTERNAL); setup_timer_1(T1_DIV_BY_1); set_timer1(0); pulsos=get_timer1(); delay_ms(5000);//espero setup_timer_1(T1_DISABLED);//deshabilito pulsos=get_timer1();//recojo la cuenta
« Última modificación: Septiembre 01, 2010, 07:55:17 por Suky » En línea
http://www.ucontrol.com.ar/forosmf/programacion-en-c/contar-pulsos-con-timer-en-ccs/ Page 1 / 5
Suky **----- ^^ ------** Moderador dsPIC
Desconectado
Sexo: Mensajes: 5182
Implementando DNP sobre GPRS!
Re: Contar pulsos con timer en ccs « Respuesta #3 : Septiembre 01, 2010, 07:59:36 »
Te conviene configurar el timer de la siguiente manera, para no re configurar erróneamente. Y fuera del bucle infinito. Código:
Luego:
Código:
Hay que ver si en los 5 segundo no se desborda el timer.
Saludos!
setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);
set_timer1(0); delay_ms(5000);//espero pulsos=get_timer1();//recojo la cuenta setup_timer_1(T1_DISABLED);//deshabilito
En línea
* Tienda Micros-Designs - SkP32, Sk2550, LPC1114.
* Comunicación DNP3 sobre TCP/IP - (Capa de enlace)
agustin156 PIC10F
Desconectado Mensajes: 32
Re: Contar pulsos con timer en ccs « Respuesta #4 : Septiembre 04, 2010, 07:30:03 »
Gracias Suky, efectivamente esa era la solución, estaba configurando mal el timer. Modifique un poco el programa utilizando el timer1 para generar el retardo por interrupciones lo dejo por si le es útil a alguien.
Saludos!
Código:
5
6
#include <16f877a.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NODEBUG,BROWNOUT,NOCPD,NOWRT
#include <flex_lcd.c>
int16 contador=0;
#int_timer1
void timer1_isr(void)
contador=get_timer0(); contador=contador*2*120; printf(lcd_putc, "\f %6lu rpm",contador); set_timer0(0); set_timer1(3036);
void main()
« Última modificación: Septiembre 04, 2010, 07:32:02 por agustin156 » En línea
cairiza PIC10F
Desconectado
Sexo: Mensajes: 3
Re: Contar pulsos con timer en ccs « Respuesta #5 : Octubre 07, 2010, 04:43:53 »
Hola cual es la entrada de tu programa? ?? estoy haciendo algo parecido. pero en proteus le pongo una
onda cuadrada por RB0 y no pasa nada.
saludos.
Carmen R
colombia
Código:
5#include <16f877a.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NODEBUG,BROWNOUT,NOCPD,NOWRT
#include <flex_lcd.c>
int16 contador=0;
#int_timer1
void timer1_isr(void)
http://www.ucontrol.com.ar/forosmf/programacion-en-c/contar-pulsos-con-timer-en-ccs/ Page 2 / 5
[/quote]
6
contador=get_timer0(); contador=contador*2*120; printf(lcd_putc, "\f %6lu rpm",contador); set_timer0(0); set_timer1(3036);
void main()
En línea
Suky **----- ^^ ------** Moderador dsPIC
Desconectado
Sexo: Mensajes: 5182
Implementando DNP sobre GPRS!
Re: Contar pulsos con timer en ccs « Respuesta #6 : Octubre 07, 2010, 04:50:23 »
Es el pin para contar eventos externos con el timer1.
Saludos!
En línea
* Tienda Micros-Designs - SkP32, Sk2550, LPC1114.
* Comunicación DNP3 sobre TCP/IP - (Capa de enlace)
cairiza PIC10F
Desconectado
Sexo: Mensajes: 3
Re: Contar pulsos con timer en ccs « Respuesta #7 : Octubre 07, 2010, 05:53:05 »
Hola, gracias por contestar.
Bien, me dices entonces que es por el RC0, pero le envio una onda cuadrada y siempre me sale 0 rpm en la pantalla
adjunto librerias y archivo en proteus. http://www.4shared.com/file/rCEiN-eK/contador_pulsos.html
gracias
Carmen R
Colombia
Cita de: Suky en Octubre 07, 2010, 04:50:23
Es el pin para contar eventos externos con el timer1.
Saludos!
En línea
Suky **----- ^^ ------** Moderador dsPIC
Desconectado
Sexo: Mensajes: 5182
Implementando DNP sobre GPRS!
Re: Contar pulsos con timer en ccs « Respuesta #8 : Octubre 07, 2010, 07:31:17 »
1000 disculpas, lei mal El timer 1 se utiliza para leer cada cierto tiempo, quien cuenta los pulsos externos es el
timer0, o seas por el pin RA4.
Saludos!
En línea
* Tienda Micros-Designs - SkP32, Sk2550, LPC1114.
* Comunicación DNP3 sobre TCP/IP - (Capa de enlace)
cairiza PIC10F
Desconectado
Sexo: Mensajes: 3
Re: Contar pulsos con timer en ccs « Respuesta #9 : Octubre 07, 2010, 10:55:28 »
sisisisis ya funciona a la perfección gracias!!!!!!!!!
anexo codigo y archivo en proteus.
http://www.4shared.com/file/LNSBpOj-/contador_pulsos.html
http://www.ucontrol.com.ar/forosmf/programacion-en-c/contar-pulsos-con-timer-en-ccs/ Page 3 / 5
muchas gracias!!!!!!!!!!
Carmen Rios Z.
Colombia
Cita de: Suky en Octubre 07, 2010, 07:31:17
1000 disculpas, lei mal El timer 1 se utiliza para leer cada cierto tiempo, quien cuenta los pulsos externos es el timer0, o seas por el
pin RA4.
Saludos!
En línea
вoяяe µPraxis - Electrónica en Practica Amigo de uControl PIC18F
Desconectado
Sexo: Mensajes: 1113
Pяobando C30
Re: Contar pulsos con timer en ccs « Respuesta #10 : Octubre 09, 2010, 06:14:11 »
Hola que tal estoy haciendo algo similar, contar las RPM de un motor, mi problema radica en que si conecto el motor en
el protoboard donde tengo la circuiteria, La LCD donde muestro el resultado muestra caracteres raros o el lcd lleno de
cuadros, y si lo conecto en otra fuente no ocurre esto, mi duda es que hacer y por que ocurre esto.
Aclaro no siempre pasa lo mencionado antes, en ocasiones muestra los datos en otras no.
De antemano gracias, saludos !!!!
« Última modificación: Octubre 09, 2010, 06:25:41 por byborre » En línea
It's not about the salary It's about reality and making some noise Makin' a story
HJ Administrator PIC24F
Desconectado
Sexo: Mensajes: 4615
Desde 29-06-2012 - Solo tareas administrativas.
Re: Contar pulsos con timer en ccs « Respuesta #11 : Octubre 09, 2010, 06:32:10 »
Lo más probable es que sea el ruido que induce el motor sobre la alimentación.
Saludos
En línea
Cuanta razón tenías Gabriel...
Para no importunar con mis respuestas, prometo no contestar mas en el foro, salvo contadas excepciones.
вoяяe µPraxis - Electrónica en Practica Amigo de uControl PIC18F
Desconectado
Sexo: Mensajes: 1113
Pяobando C30
Re: Contar pulsos con timer en ccs « Respuesta #12 : Octubre 09, 2010, 07:16:29 »
Gracias por la respuesta HJ, ¿Ahora que hacer para corregirlo?
Saludos!!!
En línea
It's not about the salary It's about reality and making some noise Makin' a story
HJ Administrator PIC24F
Desconectado
Sexo: Mensajes: 4615
Re: Contar pulsos con timer en ccs « Respuesta #13 : Octubre 10, 2010, 12:33:41 »
Lo mas conveniente, según mi punto de vista, es la utilización de fuentes separadas. Por lo menos deberías utilizar una fuente muy buena con reguladores independientes y filtros apropiados.
Por otra parte, deberías evitar lazos de masa y evitar cables y pistas de impreso finas y largas. Asegúrate de poner un capacitor de .01uF entre Vcc y GND lo mas próximo a las entradas del PIC.
Saludos
http://www.ucontrol.com.ar/forosmf/programacion-en-c/contar-pulsos-con-timer-en-ccs/ Page 4 / 5
Ir a:
Página creada en 0.099 segundos con 27 consultas. (Pretty URLs adds 0.016s, 3q)
Desde 29-06-2012 - Solo tareas administrativas.
En línea
Cuanta razón tenías Gabriel...
Para no importunar con mis respuestas, prometo no contestar mas en el foro, salvo contadas excepciones.
вoяяe µPraxis - Electrónica en Practica Amigo de uControl PIC18F
Desconectado
Sexo: Mensajes: 1113
Pяobando C30
Re: Contar pulsos con timer en ccs « Respuesta #14 : Octubre 10, 2010, 12:52:12 »
Gracias, probare con el capacitor ya que no lo tengo y efectivamente uso cables muy delgaditos y largos,
Saludos!!!
En línea
It's not about the salary It's about reality and making some noise Makin' a story
Páginas: [1] 2 Ir Arriba IMPRIMIR « anterior próximo »
6=> CCS, SDCC, C18, C30 y otros "C". ir
Powered by SMF 1.1.16 | SMF © 2011, Simple Machines SMFAds for Free Forums
http://www.ucontrol.com.ar/forosmf/programacion-en-c/contar-pulsos-con-timer-en-ccs/ Page 5 / 5