Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Vovk
2021-08-07 21:16:48

Дякую усім!

Виявляється я виліз за межі масиву. Зарезервована таблиця jaskr[30] містить 30 елементів з номерами від 0 до 29 включно. Я помилково вважав, що існує ще один елемент з індексом 30.

Добраніч!

Vovk
2021-08-07 20:52:27
г0сть пише:

https://doc.arduino.ua/ru/prog/Array

Дякую!

Ви змінили моє уявлення про Всесвіт масиви!

г0сть
2021-08-07 20:36:38

https://doc.arduino.ua/ru/prog/Array

г0сть
2021-08-07 20:20:23
Vovk пише:

Якщо точно, то в таблиці з індексами від 0 до 30 міститься 31 елемент.

Серьезно? Т.е. вы задали таблицу на 30 элементов

#define kil_st 30

пытаетесь впихнуть в нее 31 элемент

for (int i = 0; i <= kil_st; i++) {
      jaskr[i] = 1.5 + 6 * i / kil_st;
      Serial.print(i);Serial.print(" ");Serial.print(jaskr[i]);      Serial.println("--------------------------------------------------");
    }

и при этом

Vovk пише:

Здається за межі таблиці не вилазив.

Vovk
2021-08-07 20:12:51
г0сть пише:

Я по невнимательности уже спалил контору. Но еще раз намекаю, посмотрите на заданное значение kill_st и сколько значений яркости вы пытаетесь запихнуть в таблицу размерностью 30? Ну и соответственно наверное (не особо вникал в код) также и считываете

Якщо точно, то в таблиці з індексами від 0 до 30 міститься 31 елемент. Здається за межі таблиці не вилазив. Усі значення стабільно лежать в межах від 1 до 7. А в останній тридцятій комірці число 255. Я не можу допетрати, як воно виростає від 7 до максимального.

г0сть
2021-08-07 20:06:06

Я по невнимательности уже спалил контору. Но еще раз намекаю, посмотрите на заданное значение kill_st и сколько значений яркости вы пытаетесь запихнуть в таблицу размерностью 30? Ну и соответственно наверное (не особо вникал в код) также и считываете

Vovk
2021-08-07 19:57:57
г0сть пише:
akapulko пише:

Визначтеся з типом даних

А также с размерностью таблицы и количеством впихуемых в нее значений smile

#define kil_st 30
......

for (int i = 0; i < kil_st; i++) 

Таблиця може містити наприклад такі значення:
112222222333334444444444444567

г0сть
2021-08-07 19:54:30

Блин, апшибочку допустил, у автора так

for (int i = 0; i <= kil_st; i++)
г0сть
2021-08-07 19:52:22
akapulko пише:

Визначтеся з типом даних

А также с размерностью таблицы и количеством впихуемых в нее значений smile

#define kil_st 30
......

for (int i = 0; i < kil_st; i++) 
Vovk
2021-08-07 19:33:12
г0сть пише:
Vovk пише:

В таблиці зберігаються числа від 1 до 7. Це значення яскравості дисплея (які відповідають певній освітленості фоторезистора). Але чомусь в останній 30 комірці з'являється число 255!

Какой смысл создавать таблицу на 30 ячеек и хранить в ней всего 7 чисел? Они там что повторяются?

Так повторюються, бо для кожного значення фоторезистора (діапазон від 0 до 1023 розділений на 30 проміжків) потрібно власне значення яскравості.

Vovk
2021-08-07 19:30:40
akapulko пише:

.....
byte jaskr[kil_st];  // масив яскравостей монітора
.....

jaskr[i] = 1.5 + 6 * i / kil_st;

Визначтеся з типом даних

Таблиця має тип byte. Мені його вистачає з головою для зберігання чисел від 1 до 7.

Чи можливо ця формула якимось чином мати результати 255?

Я підозрюю, що 255 з'являється десь в іншому місці, а не у вказаному циклі.

г0сть
2021-08-07 19:21:44
Vovk пише:

В таблиці зберігаються числа від 1 до 7. Це значення яскравості дисплея (які відповідають певній освітленості фоторезистора). Але чомусь в останній 30 комірці з'являється число 255!

Какой смысл создавать таблицу на 30 ячеек и хранить в ней всего 7 чисел? Они там что повторяются?

akapulko
2021-08-07 18:59:38

.....
byte jaskr[kil_st];  // масив яскравостей монітора
.....

jaskr[i] = 1.5 + 6 * i / kil_st;

Визначтеся з типом даних

akapulko
2021-08-07 18:54:50
.....
[color=#ff0303]byte[/color] jaskr[kil_st]byte jaskr[kil_st]
.....
jaskr[i] = [color=#ff0303]1.5[/color] + 6 * i / kil_st;

Визначтеся з типом даних

Vovk
2021-08-07 18:24:55
ard125 пише:
Vovk пише:

В таблиці jaskr[] останній елемент вперто змінює своє значення на 255. Всі інші елементи таблиці поводяться пристойно.

}

А яке ж воно по вашому має бути?


В таблиці зберігаються числа від 1 до 7. Це значення яскравості дисплея (які відповідають певній освітленості фоторезистора). Але чомусь в останній 30 комірці з'являється число 255!

Підвал форуму