Eeprom.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "Eeprom.h"
  2. uint16_t readPointerEcriture(){
  3. uint8_t t[2];
  4. t[0]=0x00;
  5. t[1]=0x00;
  6. writeEeprom(EepromADD,t,2);
  7. readEeprom(EepromADD,t,2);
  8. uint16_t res = t[0]<<8 & t[1];
  9. return res;
  10. }
  11. void writePointerEcriture(uint16_t p){
  12. uint8_t t[4];
  13. t[0]=0x00;
  14. t[1]=0x00;
  15. t[2]=(uint8_t)p>>8;
  16. t[3]=(uint8_t)p>>8;
  17. writeEeprom(EepromADD,t,4);
  18. }
  19. uint16_t readPointerLecture(){
  20. uint8_t t[2];
  21. t[0]=0x00;
  22. t[1]=0x01;
  23. writeEeprom(EepromADD,t,2);
  24. readEeprom(EepromADD,t,2);
  25. uint16_t res = t[0]<<8 & t[1];
  26. return res;
  27. }
  28. void writePointerLecture(uint16_t p){
  29. uint8_t t[4];
  30. t[0]=0x00;
  31. t[1]=0x01;
  32. t[2]=(uint8_t)p>>8;
  33. t[3]=(uint8_t)p>>8;
  34. writeEeprom(EepromADD,t,4);
  35. }
  36. //ne fonctionne pas a refaire on eccrit même si on arrivent a la fin
  37. void writeDataFifo(uint8_t *tab, uint8_t size){
  38. uint8_t t[size+2];
  39. uint16_t pr = readPointerEcriture();
  40. t[0]=(uint8_t)pr>>8;
  41. t[1]=(uint8_t)pr;
  42. for (int i= 0; i<size;i++)
  43. t[i+2]=tab[i];
  44. writeEeprom(EepromADD,t,size+2);
  45. pr=pr+(size/2);//
  46. if (pr>0x800)
  47. writePointerEcriture(pr);
  48. }
  49. void readDataFifo(uint8_t *tab, uint8_t size){
  50. }
  51. //fonction pour tester le hard de l'Eeprom
  52. void testEeprom(){
  53. uint16_t add = 0x04AA;
  54. writePointerEcriture(add);
  55. add = readPointerEcriture();
  56. }