Hola a todos, he leído este hilo y es el mismo problema que tengo.
Debo hacer un trabajo para mis estudios, las condiciones son:
1.- Tengo un numero entero y uno decimal(float)
2.- Se deben incrementar al pulsar un botón ( el valor a incrementar no interesa, solo es para visualización de entero y decimal(float))
3.- Con otro botón resetear o dejar en cero.
4.- Cuando se reinicie se debe partir del ultimo valor que se debe guardar en memoria interna del pic.
5.- Hacerlo indefinidamente.
Todo bien (gracias a los ejemplos aquí dejados)
El problema es cuando debo guardar el dato float(decimal) en la eeprom y luego leerlo
Aquí lo hecho hasta el momento
¿Podrían ayudarme por favor? (No sé casi nada de programación por no decir nada)
Javier.
Debo hacer un trabajo para mis estudios, las condiciones son:
1.- Tengo un numero entero y uno decimal(float)
2.- Se deben incrementar al pulsar un botón ( el valor a incrementar no interesa, solo es para visualización de entero y decimal(float))
3.- Con otro botón resetear o dejar en cero.
4.- Cuando se reinicie se debe partir del ultimo valor que se debe guardar en memoria interna del pic.
5.- Hacerlo indefinidamente.
Todo bien (gracias a los ejemplos aquí dejados)
El problema es cuando debo guardar el dato float(decimal) en la eeprom y luego leerlo
Aquí lo hecho hasta el momento
Código:
#include <16f877a.h>
#device adc = 8 // a 8 bits
#use delay(crystal = 4MHz)
#include <lcd420.c>
#define pulsador pin_c0 // pulsador para cambiar
#define reset pin_c1 //pulsador para resetear
void main (void)
{
int8 entero;
float decimal;
//leo las memorias
entero = read_eeprom(0);
decimal = read_eeprom(0x01);[COLOR=Red]// duda [/COLOR]
lcd_init(); // Inicializar la pantalla.
while (true)
{
if(input(pulsador))
{
entero=entero + 1.9; // varia el valor.
decimal=decimal + 1.1; // Varia el valor.
}
if(input(reset))
{
lcd_init();
entero=00; //`pone a cero la cuenta.
decimal=0; // pone a cero la cuenta.
}
lcd_gotoxy(1,1);
printf(lcd_putc,"ent=");// imprime ent
lcd_gotoxy(8,1);
printf(lcd_putc,"dec=");//imprime dec
lcd_gotoxy(5,1);
printf(lcd_putc,"%d",entero);//imprime valor en entero
delay_ms(100);
lcd_gotoxy(13,1);
printf(lcd_putc,"%f",decimal);//imprime valor en decimal
delay_ms(100);
//aqui debo escribir en memoria
write_eeprom(0,entero);
delay_ms(10);
write_eeprom (0x01,decimal);
delay_ms(10);
}
}
¿Podrían ayudarme por favor? (No sé casi nada de programación por no decir nada)
Javier.
Última edición por un moderador: