##// 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
/*------------------------------------------------------------------------------
-- 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
-- Mail : alexis.jeandet@member.fsf.org
-------------------------------------------------------------------------------*/
#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;
}
void eeprom24lc0xpagewrite(eeprom24lc0xDev* dev,unsigned char address,unsigned char* page)
{
int cmdcnt=1,datacnt=8;
//i2cwrite(dev.iicdev,address,page)
//i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,page,&datacnt);
}
void eeprom24lc0xpageread(eeprom24lc0xDev* dev,unsigned char address,unsigned char* page)
{
int cmdcnt=1,datacnt=8;
/*i2cwrite(dev.iicdev,dev.devAddress,&address,&cmdcnt);
i2cread(dev.iicdev,dev.devAddress,page,&datacnt);*/
}
void eeprom24lc0xbytewrite(eeprom24lc0xDev* dev,unsigned char address,unsigned char data)
{
int cmdcnt=1,datacnt=1;
//i2cwrite2(dev.iicdev,dev.devAddress,&address,&cmdcnt,&data,&datacnt);
}
unsigned char eeprom24lc0xbyteread(eeprom24lc0xDev* dev,unsigned char address)
{
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;
}
void eeprom24lc0xreadn(eeprom24lc0xDev* dev,unsigned char address,unsigned char* data, unsigned int count)
{
int cmdcnt=1,datacnt=count;
/* i2cwrite(dev.iicdev,dev.devAddress,&address,&cmdcnt);
i2cread(dev.iicdev,dev.devAddress,data,&datacnt);*/
}
void eeprom24lc0xwriten(eeprom24lc0xDev* dev,unsigned char address,unsigned char* data, unsigned int count)
{
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;}
}