Hola de nuevo, os comento:
El encoder que estoy utilizando es un HEDS 5540 y tiene dos canales, lo unico que como a mi solo me interesa el numero de pulsos y no el sentido de giro ni la velocidad del motor solo utilizo uno de ellos. Aparte me he asegurado con las hojas de caracteristicas de este y le he puesto la resistencia de pul-up al canal. Como ya os dije, se que el encoder funciona bien porque lo alimente, lo conecte a un osciloscopio y se veia el tren de pulsos al girar el eje.
Luego el problema esta o bien en el micro o en el codigo que puede ser que haya que poner mas lineas de configuracion aunq yo pienso q con las q puse vale aunq no estoy ya seguro.
El canal del encoder se lo he conectado a la patilla RC0 del micro que es el Timer 1 y el codigo entero es muy sencillo ya que lo he echo de prueba para ver si cuenta o no, bueno os lo poongo entero:
#include <18F8720.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,NOPROTECT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <stdio.h>
void main()
{
int contador_encoder;
while(1)
{
setup_timer_1(T1_EXTERNAL);
contador_encoder=get_timer1();
printf("
contador encoder=%d
",contador_encoder);
}
}
Me compila bien, lo cargo al micro, lanzo el hyperterminal, me comunica bien pero siemrpre me sale contador de encoder=0 aunq haya pulsos en el encoder
¿Que es lo q puede fallar?
Respecto a lo del programa de ejemplo de CCS yo lo habia echado un vistazo pero no me sirve pq no cuneta los pulsos con el contador.
Muchas gracias chicos, os debo mucho