Size: a a a

2020 September 21

СЗ

Санитар Зачем... in CADR
Andrey 🍊
Как вариант ещё — моргание цифрами делать в прерываниях, чтобы гарантировать тайминги
Вот этот вариант приходил в голову, но я технически не подкован в работе с прерываниями.
источник

A🍊

Andrey 🍊 in CADR
Да там всё просто: ставишь таймер на мало милисекунд, и в прерывании выполняется с приоритетом, то есть остальное тормозится
источник

СЗ

Санитар Зачем... in CADR
Andrey 🍊
Тогда прерывания. Ну и можно ардуину не юзать, тиньки хватит, мне кажется
угу, но у ардуины как раз хватвает выводов.
источник

СЗ

Санитар Зачем... in CADR
Т.е. если мне разбить считывание на этапы и каждый их них считать за проход цикла - это ляпня?
источник

A🍊

Andrey 🍊 in CADR
Санитар Зачем
Т.е. если мне разбить считывание на этапы и каждый их них считать за проход цикла - это ляпня?
Проще прерываниями. Каждое прерывание — одна цифра отрисовалась
источник

A🍊

Andrey 🍊 in CADR
До следующего прерывания горит, потом зажигаешь следующую
источник

A🍊

Andrey 🍊 in CADR
Пинов надо: 7(8) + N + 1, где N — количество символов. Плюс один на питание и один на землю. 7 или 8 — см. даташит индикатора, там иногда точка ещё есть
источник

A🍊

Andrey 🍊 in CADR
1 пин на даллас
источник

СЗ

Санитар Зачем... in CADR
типа
1 проход - инициализация чипа
2 проход - начало считывания
3 проход - начала ожидания считывания
...
120 проход - считывание завершено
121 проход - преобразовать первую часть raw
122 проход - преобразовать вторую часть raw
123 проход - посчитать итоговое значение
и заново на первый проход.
источник

A🍊

Andrey 🍊 in CADR
А тебе принципиально, чтобы раз в T считывались данные или можно хоть постоянно?
источник

СЗ

Санитар Зачем... in CADR
Andrey 🍊
Пинов надо: 7(8) + N + 1, где N — количество символов. Плюс один на питание и один на землю. 7 или 8 — см. даташит индикатора, там иногда точка ещё есть
не, с пинами порядок - хватило как раз. Собрано даже. Правда проблема с работой даласа на длином проводе.
источник

СЗ

Санитар Зачем... in CADR
Andrey 🍊
А тебе принципиально, чтобы раз в T считывались данные или можно хоть постоянно?
Нет, любой вариант. Главное чтбы светилось равномерно.
источник

СЗ

Санитар Зачем... in CADR
Ну и нормально чтобы было, а не ляпня (как мы обычно любим)
источник

A🍊

Andrey 🍊 in CADR
Ну тогда я бы сделал в основном коде постоянное циклическое считывание температуры, а в прерываниях — отрисовку, так как она чувствительнее к таймингам, чем даллас
источник

A🍊

Andrey 🍊 in CADR
@Hexorand тут вроде больше шарит за такие вещи
источник

СЗ

Санитар Зачем... in CADR
Andrey 🍊
Ну тогда я бы сделал в основном коде постоянное циклическое считывание температуры, а в прерываниях — отрисовку, так как она чувствительнее к таймингам, чем даллас
👍добро
пасиб!
источник

A🍊

Andrey 🍊 in CADR
А вообще в дефконе раньше был Миша Бадин, он вообще эмбеддед писал (и вроде бы пишет) профессионально, можешь на него набежать. Он STM делает, но думаю, и AVR знает, да и принципы-то одни.
источник

СЗ

Санитар Зачем... in CADR
Andrey 🍊
А вообще в дефконе раньше был Миша Бадин, он вообще эмбеддед писал (и вроде бы пишет) профессионально, можешь на него набежать. Он STM делает, но думаю, и AVR знает, да и принципы-то одни.
Это через чур круто. мне же простую вещь в принципе надо.
источник

A🍊

Andrey 🍊 in CADR
Вот вроде бы годный туториал:
https://learn.adafruit.com/multi-tasking-the-arduino-part-2/overview
источник

A🍊

Andrey 🍊 in CADR
Тебе нужны прерывания от таймеров, а не от пинов
источник