TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: D1to en 19 de Enero de 2017, 23:21:17

Título: Limitar el numero de decimales float en Mikro C
Publicado por: D1to en 19 de Enero de 2017, 23:21:17
Hola a todos, verán, estoy intentando limitar el numero de decimales de un numero que se muestra en una lcd, a 1 decimal, estoy usando un lm35 y lo almaceno en una variable tipo float ( por q necesito el valor con un decimal), he estado buscando en  Internet pero no logro comprender. Agradecería si alguien tuviera una idea o pueda explicarme.  :-/  :-/  :-/  . Por cierto estoy usando un 16F877A y Mikroc C
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: KILLERJC en 19 de Enero de 2017, 23:37:25
Deberias buscar sobre "sprintf"
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: D1to en 19 de Enero de 2017, 23:48:58
sprintf --->identificador no declarado
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: KILLERJC en 20 de Enero de 2017, 00:16:46
Esa es la parte donde te dije

Deberias buscar sobre "sprintf"

Si buscabas sprintf en google, obtenias:

https://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm

La cual te dice que pertenece a stdio.h y ademas como usarla.
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: D1to en 20 de Enero de 2017, 00:54:35
 :oops: :oops: No comprendo
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: KILLERJC en 20 de Enero de 2017, 01:16:20
Código: C
  1. #include <stdio.h>
  2.  
  3. char str[8];
  4. float numero = 3.1415
  5.  
  6. sprintf(str,"%.1f",numero);

En str vas a tener un string para enviar con 1 solo decimal
Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: manwenwe en 20 de Enero de 2017, 12:05:24
:oops: :oops: No comprendo

#include <sprintf.h>

Título: Re:Limitar el numero de decimales float en Mikro C
Publicado por: D1to en 21 de Enero de 2017, 22:21:58
Discúlpenme por ser tan cabeza dura, encontré esto en la ayuda de Mikro C. Alguien podría explicarme paso a paso? que es lo q me falta en este ejemplo básico, sobre todo al momento de declarar, encontré mas información q soluciona mi problema, pero, no comprendo. Y como pueden ver en este ejemplo hay cosas q me faltan y eso significa que hay muchas cosas q no comprendo, el programa compila pero no obtengo salida enn la lcd.


https://download.mikroe.com/documents/compilers/mikroc/pic/help/sprint_library.htm (https://download.mikroe.com/documents/compilers/mikroc/pic/help/sprint_library.htm)
Código: [Seleccionar]
sbit LCD_RS at RB7_bit;
sbit LCD_EN at RB6_bit;
sbit LCD_D4 at RB5_bit;
sbit LCD_D5 at RB4_bit;
sbit LCD_D6 at RB3_bit;
sbit LCD_D7 at RB2_bit;
sbit LCD_RS_Direction at TRISB7_bit;
sbit LCD_EN_Direction at TRISB6_bit;
sbit LCD_D4_Direction at TRISB5_bit;
sbit LCD_D5_Direction at TRISB4_bit;
sbit LCD_D6_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB2_bit;
void sprintf(char *buffer, const code char *f,...){

}

float variable ;
char buffer [5] ;
void main(){
 LCD_INIT();
 LCD_CMD(_LCD_CLEAR);
 variable = 123.542 ;

 while (1){
 sprintf(buffer, "%.1f",variable);
 Lcd_Out(1, 1, buffer);
 delay_ms(10) ;
 }
}