Redireccionamiento del printf

Ver el tema anterior Ver el tema siguiente Ir abajo

Redireccionamiento del printf

Mensaje por jgpeiro el Miér 30 Jun 2010 - 9:22

Hola

cuando trabajaba con el C30 de microchip, el printf enviaba caracteres automaticamente por la UART. Ahora trabajo con otro compilador tambien basado en GCC, y mi compilador no envia los caracteres por ningun lado.
¿Como puedo hacer que el printf envie los datos automaticamente por la UART?

Otra cosa, ¿El PIC-GCC permite tambien programar los PIC16 en C++?

Saludos

jgpeiro
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 30/06/2010

Volver arriba Ir abajo

Re: Redireccionamiento del printf

Mensaje por per el Jue 1 Jul 2010 - 21:55

El PIC-GCC esta desarollado para el PIC16F877 y 87x y algunos PIC16F88 ... estos PICs tienen solo un UART, no hay que definir el UART que se debe usar.

En la documentación (Tutorial) Capítulo 2. Biblioteca de Dispositivos

2.3.5. uart_puts
Escribe un cadena de datos en el puerto Serie Asíncrono
void uart_puts(char *datos);

un ejemplo
ej_uart.c
#include <pic/p16f877a.h>
#define FOSC_HZ 20000000
#include <uart.h>
#include <delayms.h>
int main (void)
{
char c=0;
char INTRO[6]="HOLA\n";
char FIN[6]="FIN\n";
delayms(100);
uart_open(SET_9600_8N1);
uart_set_baudrate(19200);
uart_puts(INTRO);
while(c!=13)
{
if(uart_kbhit()==1)
{
c=uart_getc();
uart_putc(c);
}
}
uart_puts(FIN);
uart_close();
return 0;
}

no hay el printf sino uart_puts y se debe abrir el puerto uart_open y tambien la velocidad en baudios uart_set_baudrate, antes de usar et uart_puts .

Los PIC16F no tienen pila para el usuario entonces no se puede usar C++, los parametros usan la memoria RAM y no hay demasciado RAM.

Puedes preguntar a Pedro José Ramírez Gutiérrez. quien ha desarollado el PIC-GCC.

Saludos

Per

per
Participante Activo
Participante Activo

Mensajes : 64
Fecha de inscripción : 08/12/2008
Localización : Rennes Bretaña Francia Europa

http://per.launay.free.fr

Volver arriba Ir abajo

Re: Redireccionamiento del printf

Mensaje por jgpeiro el Vie 2 Jul 2010 - 10:45

mi interes en utilizar el printf es que quiero compilar un programa que ya esta escrito con esa funcion. Creo que las librerias de C deberian permitir "redireccionar" el printf indicandole de alguna manera la funcion a utilizar para enviar caracteres sueltos.
Con el MPLAB, por defecto el printf envia los datos a una funtion como "UARTputc", pero que pasa si quiero que esos datos salgan por el puerto SPI?

Actualmente estoy trabajando con un ARM cortex-M3y el compilador Codesourcery G++ basado tambien en GCC. Mi intencion es cer como se puede hacer con PIC-GCC para probarlo con Codesourcery. Es mas, no quiero redireccionar solo el printf, tambien el cout ya tambien quiero utilizar librerias en C++.

jgpeiro
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 30/06/2010

Volver arriba Ir abajo

Sobre el printf

Mensaje por FernandoPR el Vie 4 Mar 2011 - 17:10

Hola jgpeiro voy a intentar hacer la redireccion de esta manera, que tambien lo vi en avr-gcc

fprintf(stdout,"texto");

o su equivalente

printf("texto");

supongo que tendre que ahcer una estructura "stdout" diferente para cada pic, o ligeramente diferente
porque "stdout" por defecto apuntara a su puerto serie estandar, ahora, tambien se podra hacer esto

FILE *fd=fopen("UART0","wr");
fprintf(fd,"texto");

asi estaria bien????

o creo que se deberia usar open

fd=open("UART",O_RDWR);

creo que el primero queda mejor no?

En verdad hacer eso no es el problema, el problema es inplementar la funcion
vfprintf
va_arg
y esas funciones que son el nucleo de las demas
me refeiro a que reconozca el int el float el char sin que pese mucho.

Creo que al inicio era muy exigente, ahora intentare hacerla, que importa pese un poco y en futuras versiones lo ire mejorando.
avatar
FernandoPR
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 27/12/2008
Edad : 34
Localización : Perú

http://zsoluciones.com

Volver arriba Ir abajo

Re: Redireccionamiento del printf

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.