Hola
El problema q tengo es q no se como borrar los datos de la memoria eeprom externa (24LC256) que la tengo conectada al PIC. Y la otra cosa es q no se muy bien si estoy utilizando bien los puertos Analogicos. Os voy a poner una parte de mi programa para ver si lo estoy haciendo bien.
#include <18f452.h>
#device adc=8
#use delay(clock=8000000)
#fuses NOWDT,HS, NOPROTECT, NOOSCSEN, NOBROWNOUT, NOPUT, NOLVP, NOWRT, NOWRTD, NOWRTB, NOWRTC, NOCPD, NOCPB, NOEBTR, NOEBTRB
#define EEPROM_SDA PIN_D1 //definimos los pines donde...
#define EEPROM_SCL PIN_D0 //la eeprom ira conectada
#include <Flex_lcd_cursor.c> //Libreria del LCD
#include <24256.c> //Libreria memoria eeprom
int8 medidas,Intensidad,Tension; //Con esta variable contamos las medidas realizadas
long value;//Valores q usaremos para la PWM
long int dir;
void Realizar_Medida(void)
{
printf(lcd_putc,"\fGuardando datos en");
printf(lcd_putc,"\nla memoria .......");
for(value=1;value<=251;value++){
set_pwm1_duty(value);//value*4*(1/clock)*t2div=microsegundos=delta
//value=
//T=seteo del timer-->setup_timer_2(el valor introducido aqui)
delay_ms(5);
set_adc_channel(0); //Con esto selecciono el RA0 o AN0 (O eso creo, xq esta funcion no la entiewndo bien)
delay_us(200);
Intensidad=read_adc();
delay_us(200);
write_ext_eeprom(dir,Intensidad ) ; //Escribo el valor obtenido en la direccion de la eeprom
dir++;
set_adc_channel(1); // Con esto selecciono el RA1 o AN1 para capturar los datos de tension
delay_us(200);
Tension=read_adc();
delay_us(200);
write_ext_eeprom(dir,Tension ) ;
dir++;
}
}
void main()
{
int8 i,j;
dir=0;
medidas=0; //Iniciamos la variable medidas a 0
lcd_init(); //Inicializa la pantalla LCD
init_ext_eeprom(); //LLama a la memoria eeprom externa
setup_adc_ports(AN0_AN1_AN2_AN3_AN4); //Selecciono los puertos RA0,RA1,RA2,RA3 y RA4 como analogicos
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Selecciono el CCP_PWM para la patilla CCP1
setup_timer_2(T2_DIV_BY_1,50 ,1);
Aqui esta una parte de mi programa. A la hora de compilar no me da ningun error el programa completo, pero el proteus 6.5 no me deja simularlo si tengo puesta la memoria eeprom externa
Salu2 y gracias