perdon pero hay algo que no estiendo sobre el tema... perdon si mi pregunta es muy tonta
Resulta que apenas estoy iniciando en el tema y estoy haciendo un controlador multivariable en builder en el cual pretendo recibir 3 señales analogas y enviar dos PWM para controla, hice un primer proyecto con una sola entrada y me funciono pero luego incremente a varias y el controlador de win xp ya no me funcio. Sime ppudieran ayudar en algo estaria muy agradecido:D. el codigo fuente es.
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay(clock=48000000)
#USE RS232(BAUD=19200, XMIT=PIN_A0, RCV=PIN_A1, stream=T1)
#USE RS232(BAUD=19200, XMIT=PIN_A2, RCV=PIN_A3, stream=T2)
#USE RS232(BAUD=19200, XMIT=PIN_A5, stream=FR)
#include <usb_cdc.h>
#include <usb_desc_cdc.h>
char c,e,g;
long int d,f;
void main()
{
usb_cdc_init();
usb_init(); //inicializamos el USB
while (!usb_cdc_connected()) {}
while (true)
{
usb_task();
if(usb_enumerated())
{
if (usb_cdc_kbhit())
{
c = usb_cdc_getc();
e = usb_cdc_getc();
g = usb_cdc_getc();
putc(c,T1);
putc(e,T2);
putc(g,FR);
}
if (kbhit(T1) || kbhit(T2))
{
d=getc(T1);
usb_cdc_putc(d);
f=getc(T2);
usb_cdc_putc(f);
}
//pwm1 por uno de los datos
//-------------------------------------------------------------
set_tris_b(0xF7);
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_1,255, 1); //
set_pwm1_duty(d); // high time= value * (1/clock) * prescale //
//--------------------------------------------------------------
//pwm2 por uno de los datos
//-------------------------------------------------------------
set_tris_b(0xF7);
setup_ccp2(CCP_PWM); // Configure CCP2 as a PWM
//setup_timer_2(T2_DIV_BY_1,255, 1); //
set_pwm2_duty(f); // high time= value * (1/clock) * prescale //
//------------------------------------------------------------
}
}
}