We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello All,
I am finding it really hard to perform write and read operations on the EEPROM connected to the MCU by two wires using the I2C Protocol.
I've read the data sheets, written the code exactly matching the datasheet info, but it was of no avail.
Please help me out.
My code looks something like this
void Write_Start(void) { E2P_SDA = 1; E2P_SCL = 1; delay_i2c(); E2P_SDA = 0; delay_i2c(); E2P_SCL = 0; delay_i2c(); } void Write_to_E2P(void) { unsigned char DEV_SEL_CODE = 0x0A0; unsigned char ADDR_MSB = 0x50; unsigned char ADDR_LSB = 0x05; unsigned char i; Write_Start(); for(i=7;i>=0;i--) { E2P_SDA = DEV_SEL_CODE^i; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); } E2P_SDA = 1; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); delay_i2c(); E2P_SCL = 0; delay_i2c(); if(E2P_SDA == 0) LED1=1; for(i=7;i>=0;i--) { E2P_SDA = ADDR_MSB^i; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); } E2P_SDA = 1; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); delay_i2c(); E2P_SCL = 0; delay_i2c(); if(E2P_SDA == 0) LED2=1; for(i=7;i>=0;i--) { E2P_SDA = ADDR_LSB^i; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); } E2P_SDA = 1; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); delay_i2c(); E2P_SCL = 0; delay_i2c(); if(E2P_SDA == 0) LED3=1; for(i=7;i>=0;i--) { E2P_SDA = current_channel^i; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); } E2P_SDA = 1; E2P_SCL = 0; delay_i2c(); E2P_SCL = 1; delay_i2c(); delay_i2c(); E2P_SCL = 0; delay_i2c(); if(E2P_SDA == 0) LED4=1; }
P89C66x is available in DIP
Erik
I do wish forums could filter the I wouldn't start from there style answers.
if someone post I am trying to shoot an elephan with a BB gun, what would your answer be?
eRIK
It certainly wouldn't be "You're an idiot! Why did you choose to go to Africa? You should have chosen Belgium instead".
Your post was the first containing the word "idiot". Return back to the previous posts, and read them again.
Then return back with a list of the amount of bad advice you found.
I was fully aware of that!
I'm directly expressing the tone of what was originally implied.
I do wish forums could filter the I wouldn't start from there style answers
But why do you think this is a less worthy contribution? What not to do is sometimes a good guideline (try this: "don't shoot elephants"). Overly touchy, Jenit?
You're somehow continuing to miss the point, which is not a comment on the merit of the contribution but the pig-ignorant tone with which it was presented. Jenit probably hasn't been reading this forum for long enough to realise that a number of the regular contributors suffer from varying degrees of ignorance and/or delusion.
I rarely give out this type of valuable information, so you (and every forum reader) better appreciate it...
[Waffle snipped]
I preferred it when you kept you secrets to yourself.
Jack Sprat: "Jenit probably hasn't been reading this forum for long enough to realise that a number of the regular contributors suffer from varying degrees of ignorance and/or delusion."
So help out: Write a FAQ listing the regulars, togeter with a quick list of their level of ignorance and their most important delusions.
I preferred it when you kept you<sic> secrets to yourself.
.. went by the sardines preferences there would be no discussion, since the sardine only prefer his own opinion.
anyhow, since the sardine is so impressed with his own reading of C books, I suggest he nest read a grammar book.
Some things aren't secret anymore.
(Video of one of MY babies...) [2minutes and 13 seconds] " far exceeds mine.
--Cpt. Vince Foster 2nd Cannon Place Fort Marcy Park, VA
Exquisite.
(Video of one of MY babies...)
Does your mum know you use Google after bedtime, Vince?
What's the point? Newbies will rapidly spot the idiots, there only seem to be a handful of 'delusion groupies' who are probably beyond seeing sense.