cuales son esas librerias? asi las pruebo a ver si andan.
C:\Program Files (x86)\PICC\Drivers\internal_eeprom.c
Hola, estoy usando la libreria que me recomendaste y aparentemente es lo mismo que usaba yo, son funciones que vienen con el compilador, write_eeprom y read_eeprom
YO estaba usando esas funciones pero no siempre me hacia bien la reescritura.
DEjo el programa basico que estoy usando, las mismas funciones en un programa mucho mas grande, no anda bien.
Yo no se si sera que justo que estoy escribiendo hay una interrupcion y corta el grabado o ke?
#include <18F452.h>
//////// Fuses: LP,XT,HS,RC,EC,EC_IO,H4,RC_IO,PROTECT,NOPROTECT,OSCSEN
//////// Fuses: NOOSCSEN,NOBROWNOUT,BROWNOUT,WDT1,WDT2,WDT4,WDT8,WDT16,WDT32
//////// Fuses: WDT64,WDT128,WDT,NOWDT,BORV20,BORV27,BORV42,BORV45,PUT,NOPUT
//////// Fuses: CCP2C1,CCP2B3,NOSTVREN,STVREN,NODEBUG,DEBUG,NOLVP,LVP,WRT
//////// Fuses: NOWRT,NOWRTD,WRTD,NOWRTB,WRTB,WRTC,NOWRTC,CPD,NOCPD,CPB
//////// Fuses: NOCPB,EBTR,NOEBTR,EBTRB,NOEBTRB
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NOOSCSEN
#FUSES NOPUT
#FUSES CCP2C1
#FUSES NOSTVREN
#FUSES NODEBUG
#FUSES NOWRTD
#FUSES NOWRTB
#FUSES NOWRTC
#FUSES NOCPB
#FUSES NOEBTR
#FUSES NOEBTRB
#use delay(clock=20000000)
#use rs232 (baud=9600,xmit=PIN_C6,rcv=PIN_C7)
//#include "stdlib.h"
#include <input.c>
#include "limits.h"
#include "internal_eeprom.c"
// The following initializes the first 4 locations of the data EERPOM
// using the #ROM directive
/* #IF defined (__PCM__)
#rom 0x2100={1,2,3,4}
#elif defined(__PCH__)
#rom int 0xf00000={1,2,3,4}
#elif defined(__PCD__)
#rom 0x007FFC00={1,2,3,4}
#endif
*/
typedef int8 INTEE;
char c;
int16 data;
void main() {
unsigned int8 i, j, address;
INTEE value,value1, value2;
do {
printf("\r\n\nEEPROM:\r\n"); // Display contents of the first 64
for(i=0; i<=3; ++i) { // bytes of the data EEPROM in hex
for(j=0; j<=15; ++j) {
printf( "%2x ", read_eeprom( i*16+j ) );
}
printf("\n\r");
}
printf("Escoja tipo 8 o 16 bits, 1, 2");
c= getc();
if (c == '1'){
printf("\r\nOpcion 1 (8bit) Location to change: ");
address = gethex();
printf("\r\nNew value: ");
value = gethex();
write_eeprom( address, value );
}
if (c == '2') {
printf("\r\nOpcion 2 (16bit) Location to change: ");
address = gethex();
printf("\r\nNew values (1): ");
value1 = gethex();
printf("\r\nNew values (2): ");
value2 = gethex();
data = make16(value1,value2);
write_int16_eeprom(address,data);
}
} while (TRUE);
}