Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

18F4520 EEPROM question.

Status
Not open for further replies.

d0zrisnot

New Member
I'm trying to make a program to store integers into my EEPROM and then generate them out via USART onto hyperterminal. So far I've gotten as far as storing strings like this into the EERPOM and it successfully reads out onto the LCD:
Code:
EEADR=lol;
EEDATA=sizeof(f);
EE_WRT();

But when I try using integers:

Code:
//WRITE TO EEPROM
	count=0;
	for(f=0;f<8;f++)
	{
		EEADR=lol;
		EEDATA=sizeof(f);
		EE_WRT();
		count++;
		lol++;
	}
	EECON1bits.WREN=0;

//READ FROM EEPROM	
	lol=0;
	for(f=0;f<count;f++)
	{
		EEADR=lol;
		test=EE_READ();
		cursor_set(0,lol);
		WriteC(test);
		count++;
		lol++;
		Delay10KTCYx(100);
	}
	while(1);

It all comes out as gibberish on the LCD :( Is this a problem with the LCD or is there some dec-hex conversion I'm missing?


Whole code:
Code:
#include <p18f4520.h>
#include <stdio.h>
#include <system4520.h>
#include <delays.h>

void EE_WRT(void);
void SerTx(unsigned char);
unsigned char EE_READ(void);

void main()
{
	int f, lol=0, count=0;
	unsigned char test;

	lcd_init();
	clear_screen();
	
//WRITE TO EEPROM
	count=0;
	for(f=0;f<8;f++)
	{
		EEADR=lol;
		EEDATA=sizeof(f);
		EE_WRT();
		count++;
		lol++;
	}
	EECON1bits.WREN=0;

//READ FROM EEPROM	
	lol=0;
	for(f=0;f<count;f++)
	{
		EEADR=lol;
		test=EE_READ();
		cursor_set(0,lol);
		WriteC(test);
		count++;
		lol++;
		Delay10KTCYx(100);
	}
	while(1);
}

void EE_WRT()
{
	EECON1bits.EEPGD=0;
	EECON1bits.CFGS=0;
	EECON1bits.WREN=1;
	INTCONbits.GIE=0;
	EECON2=0x55;
	EECON2=0xAA;
	EECON1bits.WR=1;
	INTCONbits.GIE=1;
	while(!PIR2bits.EEIF);
	PIR2bits.EEIF=0;
}

unsigned char EE_READ()
{
	EECON1bits.EEPGD=0;
	EECON1bits.CFGS=0;
	EECON1bits.RD=1;
	return(EEDATA);
}

void SerTx(unsigned char c)
{	
	while(PIR1bits.TXIF==0);
	TXREG=c;
}
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top