eddy-em.livejournal.com github.com/eddyem
-
- Не понял насчёт флоатов. Кто не умеет, STM32F072? Софтовая
реализация чем плоха? - mr-x(Вчера, 11:24)
- Софтовая реализация медленная. Они ведь даже деление не умеют! Куда
уж тут флоаты? Eddy_Em(544 знак., Вчера, 11:29)
- Медленная по сравнению с чем, по сравнению со скоростью изменения температуры объекта? И куксочно-линейная из скольки кусков? Там же логарифмы. mr-x(261 знак., Вчера, 11:55, +1)
- А если меняется В или R25 снова пересчитывай/перешивай проц? В целочисленной логарифм прекрасно считается и можно в настройках задавать параметры NTC/ - Andreas(Вчера, 11:54)
- Как-то раз я реализовал формулу NTC, которая с логарифмом, в целочисленной арифметике. Двоичный логарифм с дробной частью опять же. Работает, однако. - SciFi(Вчера, 11:37)
- Не может вычислять температуру 1000000 раз в секунду. Это никуда не
годится! SciFi(15 знак., Вчера, 11:27)
- У меня были мысли насчёт частоты опроса термометра, но я из от себя
гнал. - mr-x(Вчера, 11:29)
- Есть в природе платиновые термопары представляющие из себя волосок кварцевого стекла с напыленной на кончике термопарой. У них постоянная времени порядка миллисекунды и если не пиздят то даже до сотен микросекунд. - Codavr(Вчера, 11:36)
- Частота там небольшая. Уж не помню. DMA загоняет данные в массив, а
когда они тебе нужны, вычисляется медиана по 9 последним
измерениям, а дальше уже температура. Eddy_Em(80 знак., Вчера, 11:34)
- 1 МГц - частота семплов? А как же здравый смысл? И меряя на большой
частоте ты вносишь дополнительную ошибку за счёт большего тока по
входу АЦП, буфера на входе явно нет. mr-x(330 знак., Вчера, 11:41 - 12:18)
- 239.5 сэмплов же, так что, куда меньше частота. Ну и пусть себе
молотит: DMA же этим занимается! А я просто из памяти беру нужные 9
значений, считаю их медиану (алгоритм из numerical receipies), а по
этому значению вычисляю температуру. - Eddy_Em(Вчера, 12:17)
- 48 кГц и 239.5 семплов чота не очень соотносятся. Я понимаю, что у
тебя всё хорошо работает и задача решена, но мы же тут о
представлении о прекрасном трындим. Я бы исходил из условий
необходимого и достаточного. DMA убрал, всё повесил на прерывание
раз в милисекунд эдак 10. Может быть даже усреднять не стал, ибо
зачем? - mr-x(Вчера, 12:30)
- Он имел ввиду время выборки УВХ - 239.5 периодов тактового сигнала АЦП. А значит, выборки будут идти реже - меньше входной ток. - Nikolay_Po(Вчера, 14:11)
- Нахрена убирать DMA и щелкать программно, когда оно прозрачно в
фоне работает и вообще не мешает? А усреднять обязательно, т.к.
минимум младшие два разряда шумят. А у NTC 10кОм при температурах
под 80℃ уж очень сопротивление падает. Там реально уже вполне можно
на пару градусов ошибиться, если не фильтровать. Хотя, с другой
стороны, эти 80 градусов - тоже "±лапоть"… А гистерезис обычно
такой, что значительно превосходит все эти шумы. - Eddy_Em(Вчера, 14:05)
- DMA может не быть. Или быть занятым. А прерывание от таймера по
любому уже есть везде и поэтому бесплатное. Требования к джиттеру
отсутствуют. Что до затрат, то неплохо бы прикинуть, какой процент
займёт эта задача от всей производительности процессора. Уверен,
процент будет ничтожный. - mr-x(Вчера, 14:55)
- ADC имеет приоритет, поэтому невозможна ситуация, чтобы DMA был занятым. А чтобы его не было на STM32, ну, это вообще сказка какая-то! И с какого перепуга прерывание "бесплатное", если при этом тратится уйма тактов на сохранение контекста, переключение в другой, а потом возврат предыдущего контекста? Даже если прерывание тупо инкрементирует счетчик (хотя, да: бывает, что по-другому никак: тот же SysTick не умеет автоматом что-нибудь инкрементировать, вот и приходится в Eddy_Em(33 знак., Вчера, 16:01)
- Дык и МК может не быть. Тогда придётся смотреть на градусник и записывать цифры в тетрадку :-) - SciFi(Вчера, 14:59, +1)
- DMA может не быть. Или быть занятым. А прерывание от таймера по
любому уже есть везде и поэтому бесплатное. Требования к джиттеру
отсутствуют. Что до затрат, то неплохо бы прикинуть, какой процент
займёт эта задача от всей производительности процессора. Уверен,
процент будет ничтожный. - mr-x(Вчера, 14:55)
- 48 кГц и 239.5 семплов чота не очень соотносятся. Я понимаю, что у
тебя всё хорошо работает и задача решена, но мы же тут о
представлении о прекрасном трындим. Я бы исходил из условий
необходимого и достаточного. DMA убрал, всё повесил на прерывание
раз в милисекунд эдак 10. Может быть даже усреднять не стал, ибо
зачем? - mr-x(Вчера, 12:30)
- 239.5 сэмплов же, так что, куда меньше частота. Ну и пусть себе
молотит: DMA же этим занимается! А я просто из памяти беру нужные 9
значений, считаю их медиану (алгоритм из numerical receipies), а по
этому значению вычисляю температуру. - Eddy_Em(Вчера, 12:17)
- 1 МГц - частота семплов? А как же здравый смысл? И меряя на большой
частоте ты вносишь дополнительную ошибку за счёт большего тока по
входу АЦП, буфера на входе явно нет. mr-x(330 знак., Вчера, 11:41 - 12:18)
- У меня были мысли насчёт частоты опроса термометра, но я из от себя
гнал. - mr-x(Вчера, 11:29)
- Софтовая реализация медленная. Они ведь даже деление не умеют! Куда
уж тут флоаты? Eddy_Em(544 знак., Вчера, 11:29)
- Не понял насчёт флоатов. Кто не умеет, STM32F072? Софтовая
реализация чем плоха? - mr-x(Вчера, 11:24)