Que tal amigos!
AngelGris en ccs las variables tipo int son de 8 bits y las long son de 16bits!.
El hitech nunca lo he utilizado.
MLO__ interesante ecuacion que colocas es en ccs?
El programa esta listo desde ayer cuando angelgris coloco su respuesta era exactamente lo que estaba pensando
de hecho asi lo habia estado haciendo solo queria saber si se podria hacer de otra forma
Y para que vean lo que hice y como premio a su ayuda les coloco aqui todo lo hecho por si tienen algunas sugerencias para mejorar el control de servos con el ccp_1 y el timer1
#include <18f252.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES PUT //Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=10000000)
long var1;
#int_TIMER1
void TIMER1_isr(void)
{
set_timer1(15536);
setup_ccp1(CCP_COMPARE_SET_ON_MATCH);
ccp_1= var1;
}
void main()
{
setup_adc_ports(an0);
setup_adc(adc_clock_internal);
set_adc_channel(0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //26.2 ms overflow
setup_ccp1(CCP_COMPARE_SET_ON_MATCH);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(15536);
ccp_1= 61786;
while(1)
{
ccp_1= (long)(read_adc()*2.44)+ 60536;
delay_us(20);
}
}
Adjunto simulacion en proteus!
Nota: Cambie algunos tiempos para adaptarlo al servo del proteus
Saludos