Чтение и запись на AT24C32

Тема в разделе "Arduino & Shields", создана пользователем arssev1, 10 июн 2015.

  1. arssev1

    arssev1 Гик

    Собственно, есть EEPROM на AT24C32, нужно писать и читать из него int и float.
    Гугл выдает кучу кода но дельных комментариев в нем нет, а я хочу понять принцип
    Если кто может - поделитесь кодом, где реализованно чтение и запись в EEPROM
     
  2. Unixon

    Unixon Оракул Модератор

    Задача делится на два части:
    1) научиться считывать и записывать в отдельные байты через I2C.
    2) научиться обращаться к int и float как к массиву байт.

    Как решается задача 1 вы уже, вероятно, разобрались.
    Вторая задача решается разными способами, можно воспользоваться union либо преобразованием типа указателя.
    Код (Text):

    void write_eeprom(int adr, byte data)
    {
      // write I2C eeprom
    }

    byte read_eeprom(int adr)
    {
      // read I2C eeprom
    }

    void test()
    {
      int int_data;
      float float_data;
      byte *buffer;
      int address;

      buffer = (byte *)&int_data;
      for (int i = 0; i < sizeof(int_data); i++)
      write_eeprom(address+i, buffer[i]);

      buffer = (byte *)&float_data;
      for (int i = 0; i < sizeof(float_data); i++)
      write_eeprom(address+i, buffer[i]);
     
      buffer = (byte *)&int_data;
      for (int i = 0; i < sizeof(int_data); i++)
      buffer[i] = read_eeprom(address+i);

      buffer = (byte *)&float_data;
      for (int i = 0; i < sizeof(float_data); i++)
      buffer[i] = read_eeprom(address+i);
    }
     
     
  3. arssev1

    arssev1 Гик

    Спасибо за помощь, но я не совсем понимаю как решить первую задачу, я конечно знаю, что делается это силами библиотеки Wire, но сколько я не втыкал в datasheet от AT24C32 я так и не понял что и куда записывать и, соответственно, откуда читать...
     
  4. Unixon

    Unixon Оракул Модератор

  5. arssev1

    arssev1 Гик

    Хммм, я это видел уже, я же в начале писал, что хочу разобраться, как это работает, а там комментариев кот наплакал...
     
  6. Unixon

    Unixon Оракул Модератор

    Зачем вам комментарии? Читайте сам код. Он там элементарный. Какие именно строки непонятны?