Запись байта в EEPROM.Записан только один байт - PullRequest
0 голосов
/ 19 января 2019

Итак, я получил домашнее задание, чтобы сделать некоторые вещи с помощью EEPROM. Несмотря на то, что я решил большинство других вещей, я застрял в проблеме, где мне нужно написать свое имя, а затем распечатать.

Почему-то пишется только первая буква моего имени, а не все. Я пытался пойти с этим несколькими другими способами, но это единственный способ, которым я могу написать одно письмо в моем eeprom.

Что-то я пропускаю или делаю неправильно?

Вот мой код:

Итак, я хочу, чтобы это: Я хочу, чтобы он взял первую букву моего имени, а затем поместил ее в первый байт (0x10, затем следующий) и поместил в 0x11 и так далее. После этого я хочу распечатать его. Однако я не знаю, в чем проблема. Я попытался взять свое имя и поместить его в несколько различных массивов, а затем распечатать их по порядку, и я попытался даже разделить свое имя, однако это единственный способ, которым он работает, и результат не что я хотел. Я что-то упустил или что-то сделал не так?

void main (void) {
    uint8_t data;
    uint8_t name[] = "Patrik";
    i2c_init();
    uart_init();
    sei();
    _delay_ms(5000);
    while (1) {
        for (uint8_t i = 0; i < sizeof(name[i]); i++) {
            eeprom_write_byte(0x10+i, name[i]);
        }

        _delay_ms(1000);

        for (uint8_t i = 0; i < sizeof(name[i]); i++) {
            printf("%c", eeprom_read_byte(0x10+i));
        }
    }
}
...