| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include <Eeprom.h>
- /****Private fonction */
- void readEeprom(uint8_t *tab, int len){
- //TODO (EEPROM IMPORTANT) On donne pas d'adresse a laqeuel on veux lire.
- HAL_I2C_Master_Receive(&EEprom.I2C,EepromADD,tab,len,1000);
- }
- void writeEeprom(uint8_t *tab, int len){
- //TODO (EEPROM IMPORTANT) On donne pas d'adresse a laqeuel on veux ecrire
- HAL_GPIO_WritePin(&EEprom.WC_PORT,EEprom.WC_PIN,0);
- HAL_I2C_Master_Transmit(&EEprom.I2C,EepromADD,tab,len,1000);
- HAL_GPIO_WritePin(&EEprom.WC_PORT,EEprom.WC_PIN,1);
- }
- uint16_t readPointerEcriture(){
- uint8_t t[2];
- t[0]=0x00;
- t[1]=0x00;
- writeEeprom(t,2);
- readEeprom(t,2);
- uint16_t res = t[0]<<8 & t[1];
- return res;
- }
- void writePointerEcriture(uint16_t p){
- uint8_t t[4];
- t[0]=0x00;
- t[1]=0x00;
- t[2]=(uint8_t)p>>8;
- t[3]=(uint8_t)p>>8;
- writeEeprom(t,4);
- }
- uint16_t readPointerLecture(){
- uint8_t t[2];
- t[0]=0x00;
- t[1]=0x01;
- writeEeprom(t,2);
- readEeprom(t,2);
- uint16_t res = t[0]<<8 & t[1];
- return res;
- }
- void writePointerLecture(uint16_t p){
- uint8_t t[4];
- t[0]=0x00;
- t[1]=0x01;
- t[2]=(uint8_t)p>>8;
- t[3]=(uint8_t)p>>8;
- writeEeprom(t,4);
- }
- /** Public Fonction*/
- void initEprom(I2C_HandleTypeDef typ,GPIO_TypeDef port, uint16_t pin){
- EEprom.I2C = typ;
- EEprom.WC_PORT = port;
- EEprom.WC_PIN = pin;
- }
- void writeData(uint16_t add, uint8_t *tab, uint8_t size){
- uint8_t t[size+2];
- t[0]=add>>8;
- t[1]=add;
- for(int i=0;i<size;i++)
- t[i+2]=tab[i];
- writeEeprom(t,size+2);
- }
- void readData(uint16_t add, uint8_t *tab, uint8_t size){
- uint8_t t[size+2];
- t[0]=add>>8;
- t[1]=add;
- writeEeprom(t,2);
- readEeprom(tab,size);
- }
- //fonction pour tester le hard de l'Eeprom
- void testEeprom(){
- uint16_t add = 0x04AA;
- writePointerEcriture(add);
- add = readPointerEcriture();
- }
|