Запись числа во внешнюю ЕЕПРОМ 24co2

next-999
Offline
Зарегистрирован: 30.09.2013
Ребят помогите пожалуйста записать и считать число во внешнюю еепром, сейчас пишет фигню какойто типа восклицательные знаки вопросы и тд..

 


#include <Wire.h>

#include <Eeprom24C01_02.h>

#define EEPROM_ADDRESS 0x50



static Eeprom24C01_02 eeprom(EEPROM_ADDRESS);


void setup()
{
    // Initialize serial communication.
    Serial.begin(9600);
    
    // Initiliaze EEPROM library.
    eeprom.initialize();

    const byte address = 0;
    const byte count = 94;

    // Declare byte arrays.
    byte inputBytes[count] = { 0 };
    byte outputBytes[count] = { 0 };

    // Fill input array with printable characters. See ASCII table for more
    // details.
    for (byte i = 0; i < count; i++)
    {    
        inputBytes[i] = i + 33;
    }

    // Write input array to EEPROM memory.
    Serial.println("Write bytes to EEPROM memory...");
    eeprom.writeBytes(address, count, inputBytes);

    // Read array with bytes read from EEPROM memory.
    Serial.println("Read bytes from EEPROM memory...");
    eeprom.readBytes(address, count, outputBytes);
    
    // Print read bytes.
    Serial.println("Read bytes:");
    for (byte i = 0; i < count; i++)
    {
        Serial.write(outputBytes[i]);
        Serial.print(" ");
    }
    Serial.println("");
}

/**************************************************************************//**
 * \fn void loop()
 *
 * \brief
 ******************************************************************************/
void loop()
{

}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А чем эта "фигня" отличается от того, что Вы пишете? Можете привести листинг вывода?

sva_khv
Offline
Зарегистрирован: 19.12.2016

next-999 пишет:

Ребят помогите пожалуйста записать и считать число во внешнюю еепром, сейчас пишет фигню какойто типа восклицательные знаки вопросы и тд..

Вот такую фигню? ;-)

"Read bytes:
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O ....."
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну так что ж Вы хотите?

Кроме outputBytes распечатайте inputBytes и убедитесь, что EEPROM работает правильно: что пишете, то и читаете.

PS. А вообще, читайте, как хранится информация внутри компьютера. Там кроме байтов ничего нет, а вопрос, как трактовать имеющиеся байты, как числа, как части длинных чисел, как символы или как элементы структуры, - находится на совести программиста. Вы без преобразования направляете байты на символьное устройство (Serial), поэтому естественно, что эти байты воспинимаются им как коды символов.

next-999
Offline
Зарегистрирован: 30.09.2013

sva_khv пишет:

next-999 пишет:

Ребят помогите пожалуйста записать и считать число во внешнюю еепром, сейчас пишет фигню какойто типа восклицательные знаки вопросы и тд..

Вот такую фигню? ;-)

"Read bytes:
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O ....."

 

да)) как сделать чтобы числа писались?)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Числа могут храниться в различной форме. Для компьютера наиболее подходящим является бинарное представление. Для человека - текстовое.

Если хотите видеть числа в текстовой записи, их нужно преобразовать в текст. В Вашем случае проще всего вместо Serial.write использовать Serial.print.