Página 1 de 1

como usar printf no C30

MensagemEnviado: 27 Jan 2013 19:36
por pardal
Olá pessoal, estou tentando escrever na serial de um PIC24FJ128GA010 com um compilador C30 da MC configurei a velocidade mas quando uso o comando:

printf("%#x\n", 28); (por exemplo)

recebo a seguinte mensagem de erro:

c:\arquivos de programas\microchip\mplab c30\bin\bin\pic30-coff-ld.exe Error: A heap is required, but has not been specified


Usei muito pouco o C e era CCS para PIC16, lá consegui usar o PRINTF sem muita dificuldade mas no C30 estou apanhando feio.

O que eu realmente preciso é imprimir um dado valor em binário, mas nem uma variável ou constante simples estou conseguindo.

Re: como usar printf no C30

MensagemEnviado: 27 Jan 2013 20:58
por andre_luis
Se você tiver criado um projeto do início ( e não aproveitado algum PRJ/MCW exemplo ), terá de especificar uma quantidade de RAM no compilador.

Vá no project properties dentro do menu File, clica em pic30-ld, e vá testando quantidades mínimas para serem alocadas para o heap por tentativa e erro.


+++

MensagemEnviado: 27 Jan 2013 21:35
por pardal
Olá Andre, grato pelo retorno, mas não achei a sequência de comandos, não sei se o C30 tem alguma interface própria mas estou usando o MPLAB 8.85 e o C30 3.11.

MensagemEnviado: 27 Jan 2013 22:19
por andre_luis
pardal escreveu:Olá Andre, grato pelo retorno, mas não achei a sequência de comandos, não sei se o C30 tem alguma interface própria mas estou usando o MPLAB 8.85 e o C30 3.11.


Dá uma olhada nesse exemplo :

http://cfile5.uf.tistory.com/image/1278 ... 4361148D4F

Imagem

+++

MensagemEnviado: 27 Jan 2013 23:07
por pardal
Beleza, o erro de pilha sumiu, só que não está saindo para a serial, no CCS a UART é a saída padrão do comando, no C30 tenho que indicar qual é a saída padrão?

Qual a diferença entre FPRINTF e PRINTF?

Vou dar mais uma estuda na documentação que baixei do C30 para ver se consigo entender melhor da coisa, meu SW está uma mistura de exemplos que peguei da mosaico pois estou usando o EXPLORER16_BR, mas acho que já consigo fazer um SW do zero, configurar UART, e fazer as rotinas para escrever na serial, no entanto não vou deixar de aceitar qualquer dica.

O que me deixa um pouco perdido no C30 é que no CCS tem vários comandos não ANSI para facilitar a vida tipo:

setup_uart( );

entre outros, o que me parece é que no C30 tem que ser na unha, não sei se não soube procurar mas não encontrei uma documentação clara com o que não é ANSI no C30, ou seja, os comandos para testar pinos, ligar e desligar os mesmos, ajustar os bits de configuração do PIC, os registradores de configuração parece que já estou me entendendo, pelo que entendi o C30 reconhece os nomes dos registradores que constam no DS do mesmo, aí é só fazer a lição de casa, ler o DS e se preparar, mas falta muito para quem está aprendendo por conta.

De qualquer forma grato por hora e como disse qualquer ajuda será sempre bem vinda.