[PIC] Como mostrar valores float no MPLAB

Pelo que verifiquei a função printf do C18, não manipula valores do tipo float, para resolver isso é só utilizar o exemplo abaixo:

Código Fonte

#include <stdio.h> // Biblioteca contendo a função printf
#include <p18f4520.h> // Escolha do seu microcontrolador
#define MULTIPLICADOR 1000 // Multiplicador para acertar a parte decimal
   
typedef struct // Cria um tipo
{
   float re; // Declara dois membros para esta estrutura
   float im;
}Ncomp;

void display(Ncomp x) // Função
{
   int Valor1,Precisao1,Valor2,Precisao2;
   Valor1 = (int)x.re; // Pega a parte inteira do numero
   Precisao1 = (int)((x.re-Valor1)*MULTIPLICADOR); // Pega a parte decimal do numero
   Valor2 = (int)x.im; // Pega a parte inteira do numero
   Precisao2 = (int)((x.im-Valor2)*MULTIPLICADOR); // Pega a parte decimal do numero
   printf("(%d.%03d + j%d.%03d)n",Valor1,Precisao1,Valor2,Precisao2);
}

void main(void)
{
   Ncomp a = {1.2,2.5}; // Declara e inicializa uma variável Var do tipo "Ncomp"
   Ncomp b = {3.7,4.0}; // Declara e inicializa uma variável Var do tipo "Ncomp"
   display(a);
   display(b);

   while(1);
}

Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC] Como mostrar valores float no MPLAB
Tags:                 

Deixe uma resposta

%d blogueiros gostam disto: