Обсуждаем контроллеры компании Atmel.
Ответить

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:16:00

20 . или нет ?

Добавлено after 8 minutes 16 seconds:
как бы в средней школе если 0 мандаринок или бананов - то считается что их нет. А в адресации массива в программировании , это считается адрес=1 .

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:18:45

20?

Правильно. То есть в последнем цикле, где принимает участие индекс i+1 вы получите перестановку 21-го элемента. Классическая ошибка адреса.

Добавлено after 2 minutes 12 seconds:
А в адресации массива в программировании , это считается адрес=1 .

С какого перепуга? Адрес в массиве - это индекс. Вы его задали начальным значением равным НУЛЮ. Правильно задали. Нулевой адрес массива - это указатель на массив.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:19:19

Нет же.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:21:45

Нет

Это не ваш день. Точно. Идите спать, а завтра откроете любой учебник по Си и прочитаете про нумерацию элементов в массиве.
Керниган вместе со своим неразлучным Ритчи вещают нам:
Изображение
Последний раз редактировалось КРАМ Вс фев 05, 2023 21:25:38, всего редактировалось 1 раз.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:22:57

КРАМ писал(а):i+1 вы получите перестановку 21-го элемента

for (i=0;i<20;i++) // цикл
максимальное i может быть только 19, а если +1 то 20 .

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:26:44

если +1 то 20 .

Правильно, но счет в массиве С НУЛЯ. Скрин я вам выше привел.
Боюсь это принципиальная ваша уязвимость... :facepalm:
Последний раз редактировалось КРАМ Вс фев 05, 2023 21:28:14, всего редактировалось 1 раз.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:27:33

Alex_641, for (i=0;i<20;i++) mass[i]=read_adc(9); //счтываем 20 значений ацп помещаем в массив mass
какой индекс i у первого элемента массива и у последнего?

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:30:21

Ну так то да .... надо подумать ...

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:31:46

надо подумать ...

Я вам скрин из отцов-основателей Си привел. Этого мало? :)))
Вы с легкостью дорабатываете традиционный алгоритм пузырька и не сомневаетесь в себе. А с нумерацией массива у вас очевидные проблемы... оксюморон кокойты...

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:39:09

Всмысле прога постоянно сканирует из несуществущего элемента массива 19+1 , меняет местами и ставит флаг что всё хорошо ?

Добавлено after 31 second:
поэтому и висит ?

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:40:49

Всмысле прога постоянно сканирует

Осталось посмотреть порядок объявления переменных и понять что там по соседству с потерпевшим массивом находится... :)))

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:45:38

если хочешь ?

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:47:14

Это не я хочу, это вы хотите узнать причину зацикливания. Лишний элемент не может быть причиной, а вот чужое значение очень даже может...

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:51:25

хорошо.
Я попробую спрятать под спойлер. Если получится. Ещё не делал этого.

Добавлено after 1 minute 30 seconds:

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:54:26

Зачем прятать? Всего то нужно показать объявление самого массива и то, что непосредственно за ним.
Ну либо тот же скрин с map-файла проекта.

Добавлено after 2 minutes 55 seconds:
хорошо......unsigned int mass[20],z,tim,bat;

Итого имеем. Вы портите значение z.
Можете сами проанализировать... :tea:
Код:
                                      z=mass[i];          // поменять
                                         mass[i]=mass[i+1]; // их
                                          mass[i+1]=z;      // местами

То есть по факту во второй строке mass[i]=z;, а в третьей z=z;
Последний раз редактировалось КРАМ Вс фев 05, 2023 21:58:08, всего редактировалось 1 раз.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:58:03

но проходов 19 !

Даладна... :))) :))) :)))
Код:
for (i=0;i<20;i++)   // цикл

От 0 до 19 - это сколько будет?
1 класс средней школы...

"От 0 до 19" будет 19

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 21:59:09

Еще один йуморист... :))) :))) :)))

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 22:01:20

А так?
Последний раз редактировалось Novice user Вс фев 05, 2023 22:08:47, всего редактировалось 1 раз.

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 22:06:47

А разница то какая ? Z - просто переменная промежуточная .

Re: Алгоритм сглаживания шумов АЦП микроконтроллера.

Вс фев 05, 2023 22:08:39

А разница то какая ?

Я вам причел что по факту получилось. А получилось ОТСУТСТВИЕ СОРТИРОВКИ в 20-м проходе.
Последний раз редактировалось КРАМ Вс фев 05, 2023 22:13:07, всего редактировалось 1 раз.
Ответить