##// END OF EJS Templates
Removed error on fat32 library, seems now to be able navigate among sectors in...
Removed error on fat32 library, seems now to be able navigate among sectors in both directions. Improved SDLCD drawing performances by almost 1000x.

File last commit:

r64:b702edc52366 dev_alexis
r68:104125d87b89 dev_alexis
Show More
24LC0X.c
103 lines | 3.2 KiB | text/x-c | CLexer
added 25Q128 eeprom driver...
r53 /*------------------------------------------------------------------------------
-- This file is a part of the libuc, microcontroler library
-- Copyright (C) 2011, Alexis Jeandet
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------------
-- Author : Alexis Jeandet
Jeandet Alexis
sync
r64 -- Mail : alexis.jeandet@member.fsf.org
added 25Q128 eeprom driver...
r53 -------------------------------------------------------------------------------*/
#include <24LC0X.h>
#include <i2c.h>
#include <core.h>
/*
struct 24LC0X_str
{
i2cDev iicdev;
unsigned char devAddress;
unsigned char size;
};
*/
void eeprom24lc0xopen(eeprom24lc0xDev* dev, i2c_t iicdev, unsigned char A0_A1_A2_val, unsigned int size)
{
dev->iicdev = iicdev;
dev->devAddress = 0x50 | (A0_A1_A2_val & 0x7);
if(size == 2048) dev->size = 2;
if(size == 1024) dev->size = 1;
}
Sync
r57 void eeprom24lc0xpagewrite(eeprom24lc0xDev* dev,unsigned char address,unsigned char* page)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=8;
//i2cwrite(dev.iicdev,address,page)
//i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,page,&datacnt);
}
Sync
r57 void eeprom24lc0xpageread(eeprom24lc0xDev* dev,unsigned char address,unsigned char* page)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=8;
/*i2cwrite(dev.iicdev,dev.devAddress,&address,&cmdcnt);
i2cread(dev.iicdev,dev.devAddress,page,&datacnt);*/
}
Sync
r57 void eeprom24lc0xbytewrite(eeprom24lc0xDev* dev,unsigned char address,unsigned char data)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=1;
//i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,&data,&datacnt);
}
Sync
r57 unsigned char eeprom24lc0xbyteread(eeprom24lc0xDev* dev,unsigned char address)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=1;
unsigned char data = 0;
/* i2cwrite(dev.iicdev,dev.devAddress,&address,&cmdcnt);
i2cread(dev.iicdev,dev.devAddress,&data,&datacnt);*/
return data;
}
Sync
r57 void eeprom24lc0xreadn(eeprom24lc0xDev* dev,unsigned char address,unsigned char* data, unsigned int count)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=count;
/* i2cwrite(dev.iicdev,dev.devAddress,&address,&cmdcnt);
i2cread(dev.iicdev,dev.devAddress,data,&datacnt);*/
}
Sync
r57 void eeprom24lc0xwriten(eeprom24lc0xDev* dev,unsigned char address,unsigned char* data, unsigned int count)
added 25Q128 eeprom driver...
r53 {
int cmdcnt=1,datacnt=8;
while(count >8)
{
cmdcnt=1;datacnt=8;
// while(i2noerr!=i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,data,&datacnt)){cmdcnt=1;datacnt=8;}
count-=8;
address+=8;
data+=8;
}
cmdcnt=1;datacnt=count;
// while(i2noerr!=i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,data,&datacnt)){cmdcnt=1;datacnt=count;}
}