-
- Не-не, там другое. Телодвижения с расчетами в прерывании, например,
АЦП, портят переменные завязанные на разбор протокола входящего по
УАРТ. В итоге связь через пень-колоду, больше ни на чем не
сказывается. - _P0V(09.08.2021 09:20, )
- Кусками уменьшай проект Tyмблep(392 знак., 09.08.2021 14:22)
- У вас расчеты в прерывании случайно плавучку и/или вычисления
квадратного корня не используют? - rezident(09.08.2021 09:29)
- Не припомню, чтобы в стм32 это было чем-то чревато. Чем напугать
хочешь? Колись! - SciFi(09.08.2021 09:38)
- Так может у него АЦП с частотой 1 МГц сэмплирует. Я еще раз
напоминаю, что я не программист, но помнится для MSP430F149
включение всего одной функции деления float увеличивало процедуру
на ~800 тактов. При тактовой частоте 8МГц это было весьма
драматическим эффектом для расчетов в прерывании. - rezident(09.08.2021 09:43)
- Хе-хе. Тогда уж сразу sprintf(). Там легко можно отъесть килобайт
стека и миллисекунду времени. И про стек, и про время я ему уже
напомнил >>> - SciFi(09.08.2021 09:45, ссылка)
- Но если стека достаточно и во времени недостатка нет - Tyмблep(110 знак., 09.08.2021 14:06)
- Шож вы такой ревнивый-то? :) Ну считайте, что я конкретизировал общё обрисованную вами проблему. - rezident(09.08.2021 09:49)
- Хе-хе. Тогда уж сразу sprintf(). Там легко можно отъесть килобайт
стека и миллисекунду времени. И про стек, и про время я ему уже
напомнил >>> - SciFi(09.08.2021 09:45, ссылка)
- Так может у него АЦП с частотой 1 МГц сэмплирует. Я еще раз
напоминаю, что я не программист, но помнится для MSP430F149
включение всего одной функции деления float увеличивало процедуру
на ~800 тактов. При тактовой частоте 8МГц это было весьма
драматическим эффектом для расчетов в прерывании. - rezident(09.08.2021 09:43)
- Не припомню, чтобы в стм32 это было чем-то чревато. Чем напугать
хочешь? Колись! - SciFi(09.08.2021 09:38)
- Данунафиг. Ты там где-то глобально накосячил, вот оно и вылазит в
разных местах. Типа переполнение стека, или времени на обработку
прерывания не хватает, или ещё какая-нибудь фигня. - SciFi(09.08.2021 09:25)
- Переполнение стека ловится аппаратно, наверное. Скорее всего там
использование нереентерабельных функций в прерывании и в основной
программе, или другом, вытесняемом, прерывании. Функции могут быть
как самодельные (придется как-то переписать/разделить), так и из
стандартной библиотеки (использовать многопоточную, или какую-то
аналогичную) - AlexBi(09.08.2021 09:40)
- +1. Что-то я не вспомнил про это дело. - SciFi(09.08.2021 09:42)
- Переполнение стека ловится аппаратно, наверное. Скорее всего там
использование нереентерабельных функций в прерывании и в основной
программе, или другом, вытесняемом, прерывании. Функции могут быть
как самодельные (придется как-то переписать/разделить), так и из
стандартной библиотеки (использовать многопоточную, или какую-то
аналогичную) - AlexBi(09.08.2021 09:40)
- Не-не, там другое. Телодвижения с расчетами в прерывании, например,
АЦП, портят переменные завязанные на разбор протокола входящего по
УАРТ. В итоге связь через пень-колоду, больше ни на чем не
сказывается. - _P0V(09.08.2021 09:20, )