Hola a todos. Estoy realizando un pequeño proyecto, en el cual tengo que guardar los datos que me entrega un acelerómetro en una memoria EEprom externa. Por lo que estuve averiguando, no es posible guardar datos en coma flotante en una EEprom. Por lo tanto hay que convertirlos de alguna forma. Yo estoy intentando usar la librería FLOATEE.C pero no logro comprender el porqué de los errores. Les adjunto el programa y los errores, quizás alguien pueda ayudarme.
#include <18f2550.h>
#fuses XT,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,NOPBADEN // el fuse
#use delay(clock=4000000)
#use i2c(Master,sda=PIN_B0,scl=PIN_B1)
#define _FLEX_LCD
#define LCD_DB4 PIN_B3
#define LCD_DB5 PIN_B4
#define LCD_DB6 PIN_B5
#define LCD_DB7 PIN_B6
#define LCD_RS PIN_C0
#define LCD_RW PIN_C1
#define LCD_E PIN_B2
#include <flex_lcd.c>
#include <floatee.c>
#include <EEPROM_24512.c> //Ficheros driver de los periféricos
#define EEPROM_ADDRESS long int
float dato;
int16 address=0;
//int dat_serie[7];
void main() {
disable_interrupts(global);
address=0;
lcd_init();
printf(lcd_putc,"Temp");
setup_adc_ports (all_analog);
setup_adc (adc_clock_internal); //enciende adc
set_adc_channel(0); //elige canal a medir RA0
delay_us(10);
while(1){
dato=read_adc();
WRITE_FLOAT_EXT_EEPROM(address,dato); //Guarda 4 bytes del FLOAT
address=address+4;
printf(lcd_putc,"Temp=%4.1f C\n",dato); //Visualiza en LCD la temperatura
}
}
Executing: "C:\Program Files\PICC\Ccsc.exe" +FH "Accelerometer_1.c" I*="C:\Program Files\PICC\Devices;C:\Program Files\PICC\Drivers" #__DEBUG=true +ICD +DF +LN +T +A +M +Z +Y=9 +EA #__18F2550=TRUE
*** Error 12 "C:\Program Files\PICC\Drivers\floatee.c" Line 20(22,23): Undefined identifier -- write_ext_eeprom
*** Error 12 "C:\Program Files\PICC\Drivers\floatee.c" Line 28(46,47): Undefined identifier -- read_ext_eeprom
2 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Sun Mar 28 13:42:02 2010