TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado por: radioelf en 29 de Julio de 2006, 04:19:02
-
Hola de nuevo, tengo problemas al intentar utilizar printf para enviar caracteres por RS232, y no me compila si incluyo printf, al intentar compilar me aparece en siguiente mensaje:
C:\Program Files\bin\pic30-coff-ld.exe Error: A heap is required, but has not been specified
os pongo una parte del código
uart_config();
U1STAbits.UTXEN = 1; //Habilitamos UART TX
// printf("Prueba\n"); //NO FUNCIONA!!
// Envia correctamete por RS232
U1TXREG = 'P';
while(U1STAbits.UTXBF){};
U1TXREG = 'r';
while(U1STAbits.UTXBF){};
U1TXREG = 'u';
while(U1STAbits.UTXBF){};
U1TXREG = 'e';
while(U1STAbits.UTXBF){};
U1TXREG = 'b';
while(U1STAbits.UTXBF){};
U1TXREG = 'a';
Saludos y gracias
-
Aquí encontrarás cómo solucionarlo
*** link eliminado por desaparición ***
Ver dos post más adelante para encontrar la solución.
-
Solucionado, Gracias :-/, la verdad es que no tengo muy claro que valor sería el mas correcto, no compila si el valor es mayor de 203 y si es mayor de 35 compila pero la aplicación no funciona? el dspic que estoy utilizando es un 30f2010 y tengo habilitado Link for ICD 2...
-
Como el link a ElRebujito se perdió, describo de nuevo el método para corregir este error:
Hay que entrar en el menú Project->Build options de MPLAB.
En la pestaña MPLAB LINK30 tenemos una casilla llamada "Heap size".
Si ahí ponemos una cantidad que determine el tamaño adecuado ya compilará sin problemas. Yo suelo poner 256 bytes.
-
Muchas gracias Manolo! Le había dado mil vueltas al asunto pero no podía encontrar las solución.
Saludos!
-
Gracias Nocturno también tenía problemas con la función printf, seguí tus instrucciones y listo aunque no entendí buen pero funcionó :shock:.