Size: a a a

Анархическая электроника

2020 August 05

S

Soad in Анархическая электроника
спасибо, ковыряюсь.
источник

S

Soad in Анархическая электроника
Путем некоторых манипуляций что-то получилось. Теперь adc_data[индекс] при подстановке соответствующего индекса (0 или 1) показывает изменения с соответствующих входов ацп. Но такое ощущение, что что-то висит в воздухе. Цепляю вход ацп на землю. По идее моргает красный. Но через случайный промежуток времени вспыхивает зеленый. Это значит, что условие меняется, хотя оба входа "висят" на земле.
источник

S

Soad in Анархическая электроника
источник

СT

Сергій Tolmeros... in Анархическая электроника
что поменяли то?
источник

S

Soad in Анархическая электроника
#define FIRST_ADC_INPUT 1
- старое значение 0
#define LAST_ADC_INPUT 3
источник

СT

Сергій Tolmeros... in Анархическая электроника
попробуйте поставить не free run
а single
один раз запустить его из main()
а потом из isr перезапускать
источник

СT

Сергій Tolmeros... in Анархическая электроника
хотя вы перезапуск и делаете
источник

S

Soad in Анархическая электроника
Попробовал изменить значение Last с 3 на 2. Теперь такая же фигня - работает только один вход
источник

СT

Сергій Tolmeros... in Анархическая электроника
второй момент - люди вроде бы значения АЦП усредняют
источник

СT

Сергій Tolmeros... in Анархическая электроника
т.е. 5 раз прочитать один вход, сложить всё и поделить на 5

можно каждый раз
adc_data = (adc_data + adc_input) / 2;
источник

S

Soad in Анархическая электроника
Боюсь что мне по назначению не получится использовать усредненное значение. Хотя в целях понимания я обязательно попробую.
Такое ощущение, что загвоздка кроется в этой строке
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
  input_index=0;
Но мне непонятно значение "++input_index"
источник

СT

Сергій Tolmeros... in Анархическая электроника
А какое назначение то?
источник

СT

Сергій Tolmeros... in Анархическая электроника
Soad
Боюсь что мне по назначению не получится использовать усредненное значение. Хотя в целях понимания я обязательно попробую.
Такое ощущение, что загвоздка кроется в этой строке
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
  input_index=0;
Но мне непонятно значение "++input_index"
если не понятно, переделайте в
input_index = input_index + 1;
if (input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
  input_index=0;
источник

S

Soad in Анархическая электроника
input_index++ - это прибавление единицы к существующему значению. А вот знаки ++ стоящие перед переменной.
источник

S

Soad in Анархическая электроника
Сергій Tolmeros
А какое назначение то?
Один вход ацп контролирует уровень напряжения питания.
Второй вход ацп будет "ловить" импульсы от пьезо элемента
источник

СT

Сергій Tolmeros... in Анархическая электроника
Soad
input_index++ - это прибавление единицы к существующему значению. А вот знаки ++ стоящие перед переменной.
источник

СT

Сергій Tolmeros... in Анархическая электроника
Soad
Один вход ацп контролирует уровень напряжения питания.
Второй вход ацп будет "ловить" импульсы от пьезо элемента
зачем пьезоэлемент?
источник

S

Soad in Анархическая электроника
пьезо - как датчик вибрации
источник

СT

Сергій Tolmeros... in Анархическая электроника
почитайте какая частота опроса АЦП
и какая частота вибраций
и сколько опросов будет длиться один импульс вибрации
источник

A

Al in Анархическая электроника
Soad
пьезо - как датчик вибрации
О вы не ищите лёгких путей
источник