Ви не увійшли.
Сторінки 1
Добрый день!
Пишу отладочный код для 24С256.
Наткнулся на непонятное поведение записи чтения массива
void setup()
{
Serial.begin(9600);
Serial.println("Hello!");
uint8_t dat[10];
Serial.println(F("Writing random "));
for (uint8_t i = 0; i < 10; i++) {
dat[i] = random(0,254);
Serial.print(dat[i]);
Serial.print(' ');
}
Serial.println();
Serial.println();
Serial.println(F("Check: "));
for (uint8_t i = 0; i < 10; i++) {
Serial.print(dat[i]);
Serial.print(' ');
}
}
Получаю после прошивки (Nano, PlatformIO):
Hello!
Writing random
43 71 29 238 220 122 60 98 43 169
Check:
184 184 184 184 184 184 184 184 184 184
Что я делаю не так?
PS
Вынес объявление массива до setup() - все заработало верно. Но ведь при объявлении массива внутри setup() он же находится в зоне видимости.
Почему не работает?
Остання редакція skeef (2022-05-07 11:42:43)
Неактивний
В жилезе лень правирять. Вот шо у миня в протеусе - https://ibb.co/x8WyMN1
С кодом, похоже, всё в порядке. Возможно ошибка в человеческом факторе. Может прошил не тот код... Например, забыл сохранить перед прошивкой.
В массиве 10 ячеек, а в первом цикле обрабатывается 11 ячеек.
i <= 9 - правильно.
В массиве 10 ячеек, а в первом цикле обрабатывается 11 ячеек.
i <= 9 - правильно.
Нормально там все. Вот если бы стояло условие <=10 , тогда да был бы вылет за границы массива.
Для проверки прошить через IDE. В платформио много не очевидных ньюансов.
То что в IDE стоит по умолчанию. В платформио надо прописывать ручками.
Сторінки 1