Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cocu3 en 19 de Julio de 2008, 13:42:08
Título: pregunta sobre multi serial
Publicado por: cocu3 en 19 de Julio de 2008, 13:42:08
buen dia, para configurar los pic con varios seriales ya se como se hace, pero mi pregunta es si se puede habilitar y desabilitar un serial durante el transcurso edl programa con la funcion setup_uart :shock:
gracias
Título: Re: pregunta sobre multi serial
Publicado por: firepic en 19 de Julio de 2008, 13:51:21
Buen día! ¿Habilitar y deshabilitar? No entiendo exactamente a qué te refieres... Puedes configurar un serial por hard y cuantos quieras por software, y CCS llama a las rutinas encargadas de la transmisión cuando usas los comandos seriales, como putc, getc y dependientes de ellos, como el printf, etc... Yo he trabajado con varios canales seriales y nunca he usado la setup_uart... sólo coloco:
Código: C
#use rs232(BAUD=xxxx, UART)
Como ves, ni siquiera hay que definir los pines, cuando colocas "UART" el CCS usa automáticamente los pines Tx y Rx del micro. Así lo hace por hardware. Los demás canales seriales que incluyas sí serán implementados por software, así que hay que definir los pines de transmisión y recepción. Ok saludos, nos leemos! :mrgreen:
Título: Re: pregunta sobre multi serial
Publicado por: MLO__ en 19 de Julio de 2008, 16:12:17
Hola
El setup_uart es para configurar la velocidad de transmision y el stream del COM.
Saludos
Título: Re: pregunta sobre multi serial
Publicado por: cocu3 en 21 de Julio de 2008, 12:22:25
pues el setup_uart lo he utilizado para habilitar y deshabilitar el serial del micro pero cuando esta por hardware, o sea hago esto: setup_uart(TRUE) para activarlo y setup_uart(FALSE) para apagarlo
lo q no se es cuando se tienen varios seriales y solo se quiere apagar uno no mas
Título: Re: pregunta sobre multi serial
Publicado por: MLO__ en 21 de Julio de 2008, 13:14:54
Título: Re: pregunta sobre multi serial
Publicado por: samhael en 28 de Julio de 2008, 22:01:39
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.
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 //