Autor Tema: Como se borra la eeprom 24LC256 y como usar el puerto A como analogico  (Leído 3261 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BossDiablo

  • PIC10
  • *
  • Mensajes: 15
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

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Como se borra la eeprom 24LC256 y como usar el puerto A como analogico
« Respuesta #1 en: 31 de Marzo de 2007, 14:23:53 »
Cuando dices que no te deja simularlo a que te refieres?


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado BossDiablo

  • PIC10
  • *
  • Mensajes: 15
Re: Como se borra la eeprom 24LC256 y como usar el puerto A como analogico
« Respuesta #2 en: 31 de Marzo de 2007, 16:32:20 »
Me da el siguiente error:

 Building circuit...
Instantiating SPICE models...
Warning: Error Variable not found parsing property R(5) of RV1_R1
Warning: Error Variable not found parsing property R(5) of RV1_R2
[U1] PIC18 model release 6.05.05 simulating 'PIC18F452' device.
[U1] Loaded 256 bytes of persistent EEPROM data.
[U1] Loading PIC COFF file '..\..\..\Documents and Settings\XXXXXX\Mis documentos\XXXXXX\LCD\18f.COF'.
PROSPICE -  Internal Exception: access violation in module 'ISIS.EXE'.
Real Time Simulation failed to start
Warning: [U1] at boot-up: No instruction cycles were executed - processor may never have made it out of reset!

Real Time Simulation FAILED.


El caso es q si quito el init_ext_eeprom(); y el write_ext_eeprom, no me da el error

Desconectado jhonastad

  • PIC10
  • *
  • Mensajes: 34
Re: Como se borra la eeprom 24LC256 y como usar el puerto A como analogico
« Respuesta #3 en: 04 de Noviembre de 2008, 00:40:06 »
Hola a todos, he usado el driver de CCS 24256.c pero al simular en proteus no me funciona, cuando guardo cualquier dato proteus me lee siempre -1 alguien me podria ayudar con este problema?


 

anything