Например TDA7294

Форум РадиоКот • Просмотр темы - Нестабильность из-за задержек
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пн май 10, 2021 22:30:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 151 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пт апр 16, 2021 16:46:25 
Друг Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 1757
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 5339
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
просто всё зависит от задачи...
есть задачи, где требуется РТОС с вытесняющей многозадачностью, приоритетами, семафорами и прочим её удобством и возможностями (правда на АВР теперь такие задачи всё реже решают...)
а есть чтото типа как у ТС - помигать светодиодами невтакт... для такой задачи хватит и чего попроще...
для ассемблера я сделал небольшой набор простеньких функций, позволяющий писать несложную многопоточную задачу так, как пишутся обычные однопоточные с делаями... просто во время делая (а у однопоточных задач часто именно программное ожидание расходует больше всего процессорного времени) счётчик команд переключается на выполнение кода другого потока (сохранив предварительно адрес для возврата именно в эту же точку оставленного потока).
Когда я этот подход попытался применить в С, то у меня ничего не получилось... виной всему оказалась оптимизация - код могло закинуть внутрь скрытой от глаз программиста подфункции (понятно, что о контексте для неё никто не озаботился...) и при выходе срывало стек...
Пришлось написать средствами С но уже не функциями, а макросами...
для программиста код остаётся набором однопоточных задач, обрамленных указателями начала и конца задачи и с делаями внутри, а для компилятора этот код разворачивается в свитч-кейс структуру...
Результат (хоть он пока и не конечный) мне понравился: дефайны занимают 3 строчки, да и получающийся код можно даже в тини 13 уместить.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
баш. от 10.10.2012 xxx: Я бы рассказал тебе, что в мире творится, но ты не любишь фантастику.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пт апр 16, 2021 18:05:48 
Электрический кот

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Мы в теме AVR? Да. Чтобы ТС-у получить псевдопараллельность. То есть, опрос кнопок, с учётом дребезга, мигание светодиода. В дальнейшем не одного. Что нам нужно сделать. Убираем в сторону языки программирования. Убираем в сторону личные предпочтения, типа одностраничности, как у одного, красивости кода, как у некоторых. Берём чисто практическую сторону вопроса. Нужно дробить все процессы. Чтобы за итерацию рабочего цикла все нужные процессы выполняли свой код покусочно. Это можно реализовать двумя способами. Заработал очередной процесс, выполнил действия, заработал другой процесс, также выполнил, следующий процесс. Этот способ дробление процессов реализуется условиями, флагами, состояниями конечных автоматов. Второй способ реализуется временными кадрами. Заработал процесс, поработал определённое время, скажем, 10 мкс. Сработало прерывание аппаратного таймера, сохранили контент, восстановили контент следующего процесса и так далее. Это и только это важно понимать. А вот на каком языке и как красиво, это уже решает программист. В силу своих познаний языков программирования, опыта и так далее.
Конечные автоматы при первом способе решают задачу псевдопараллельности на ура. Потому что каждый процесс раздроблен на состояния. И основной цикл выглядит как список из функций. Необязательно каждая функция это конечный автомат. Главное, чтобы соблюдался принцип дробления всех функций.
И почему именно это, практическую сторону, вы всегда отбрасываете при очередном обсуждении...
Любому начинающему нужно знать только это. Как технически реализовать псевдопараллельность. А дальше уже он решает, каким путем он пойдёт дальше.


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пт апр 16, 2021 20:32:00 
Первый раз сказал Мяу!

Зарегистрирован: Ср ноя 21, 2018 02:29:02
Сообщений: 23
Рейтинг сообщения: 0
Ну ни себе чего полемика!! Высший пилотаж, да и только.
NStorm,дружище, " в блокноте, без проверки" и вот он код " на блюдечке с голубой каёмочкой" , но, к великому сожалеию, с маленьким пятнышком:
кодвижн ругается на 48 : if (flag >= 2 && TCNT0 >= T0VAL) . Окончательно обнаглею: как подправить? Ну не дано в таких высоких материях ориентироваться,
у каждого свой уровень.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пт апр 16, 2021 21:11:41 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 112
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 998
Рейтинг сообщения: 0
Demiurg, а вы говорите - дальше сами.
Да куда уж мы сами, нам подай на "блюдечке с голубой каёмочкой", и еще и ошибку помоги исправить.
Кстати в ветке про arm предлагают задержку для лсд на конечных автоматах, присоединяйтесь, будет интересно.


Вернуться наверх
 
Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Сб апр 17, 2021 03:17:28 
Электрический кот

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Ну, вообще то я с асма начинал. И конечные автоматы применял вовсю.


Вернуться наверх
 
Интеллектуальные ключи верхнего плеча семейства PROFET™+2 12V от Infineon

Компания Infineon представила новое семейство защищенных силовых ключей PROFET™+2 12V. Изделия объединяют в себе функции диагностики и различные защиты. Ключи PROFET™+2 12V имеют одно из самых низких в отрасли сопротивлений в открытом состоянии RDS(ON) (от 2,6 мОм) и выпускаются в миниатюрном корпусе TSDSO-14 с шагом выводов 0,65 мм. Благодаря функции ReverseON все семейство соответствует строгим требованиям по защите от обратной полярности питания, впервые реализованной в одном чипе.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Сб апр 17, 2021 14:06:56 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 40
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 350
Рейтинг сообщения: 0
Demiurg, Вы поймёте, Вы весьма неглуп. Ну вот не надо первоклашку учить интегрировать. Пусть он со сложением разберётся. Пусть пока делает попроще, а когда дорастёт, и надоест мигать светиками, найдёт Вашу ссыль на Татарчевского и подумает, вот, йопт, пора и посложнее сделать. А КА, конечно, отличный метод. Я до него ещё не добрался, всё с флагами пока. ;)

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вс апр 18, 2021 03:31:38 
Электрический кот

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Сначала первоклашка должен прочитать внимательно книжку по архитектуре мк, понять как работает мк, понять, как сделать псевдопараллельность процессов. Что я и сделал. Обратите внимание. Из за того что они этого не понимают, мало того, в книжках почему то об этом не пишут. Вот в чем проблема. Нужно сразу показывать это. Лично мне ещё на этапе ассемблера крайне не хватало именно этой информации. Из за чего я бросался на всякие диспетчеры. Казалось бы вот решение проблем. Ан нет. Я из за этого потерял кучу времени. С другой стороны это опыт... Какой никакой. Но эту информацию нужно давать сразу. И параллельно пусть учатся писать. Ассемблер, си, без разницы. Когда видишь суть, на чем писать уже по фигу.
Не пожалейте времени, сядьте почитайте эти статьи. В них полностью расписано, как нужно создавать проекты. Дело даже не в конечных автоматах. Взаимодействие программных модулей. Служба сообщений, событий. Программные таймеры. И так далее. Эта именно та информация, которая нужна всем.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вс апр 18, 2021 06:25:30 
Друг Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 1757
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 5339
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Прошу разрешения у Sergbern использовать его код в качестве примера для моего распределителя - попробую это дело в статью оформить.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
баш. от 10.10.2012 xxx: Я бы рассказал тебе, что в мире творится, но ты не любишь фантастику.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вс апр 18, 2021 08:27:28 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 40
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 350
Рейтинг сообщения: 0
Т е всё таки расскажете первоклашке про интеграл. Да просто расскажите ему, что это возможно, вот и всё. Пусть ОПЫТА набирается, Вы правильно про свой опыт сказали, научиться без шишек на лбу ну никак. Согласен, он должен это понимать.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вс апр 18, 2021 11:56:15 
Мудрый кот

Карма: 18
Рейтинг сообщений: 506
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1862
Рейтинг сообщения: 0
Sergbern, как именно ругается хоть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 07:31:40 
Первый раз сказал Мяу!

Зарегистрирован: Ср ноя 21, 2018 02:29:02
Сообщений: 23
Рейтинг сообщения: 0
Ivanoff-iv, да, конечно, картбланш.

Добавлено after 6 minutes 31 second:
dgrett, понятно, что можно такие штуки делать, не чета моим игрушкам. Просто у меня мышление материальное, виртуалка плохо всасывается, да и 55 не 20.

Добавлено after 9 minutes 51 second:
NStorm, invalid expression.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 08:20:19 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 40
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 350
Рейтинг сообщения: 0
55 всего-то? ;)

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 09:35:33 
Модератор
Аватар пользователя

Карма: 150
Рейтинг сообщений: 2451
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 16183
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
а мне уже 70, но мышление не подводило ни разу.

_________________
Мудрость приходит вместе с импотенцией...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 09:50:53 
Мудрый кот

Карма: 18
Рейтинг сообщений: 506
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1862
Рейтинг сообщения: 0
NStorm, invalid expression.

А вы случаем строку #define сверху не забыли из моего примера?
#define T0VAL = 195 // переполнение на 195 тиках ~ 200мс

Или
char flag;
забыли видимо, что такую ошибку дает.

Добавлено after 30 seconds:
И не перепутайте, там цифра 0, а не буква О.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 15:14:20 
Друг Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 1757
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 5339
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Попытался довести свой метод до ума... но так и не вышло... (хотел автоматизировать подстановку имени потока и номера задержки, но возможности кодевиженовского дефайна такой возможности не дали)
поэтому статью пока писать не стал.
в работу программы до конца не врубился... поэтому просто скопировал код, немного в нём прибрался (да простит меня автор :)) ), да скучумжил незначащие в данном аспекте строки.
Теперь моргалки не мешают работе остального кода.
_____
Для добавления потоков в имеющийся проект достаточено скопировать в его начало 5 дефайнов из этого файла, далее нужно выделить потоки и внутри заменить штатные программные задержки на задержки потоков.

Добавлено after 9 minutes 8 seconds:
Не знаю, работает ли программа так, как задумал автор... но она работает так, как бы работала с делаями, но на многопоточном процессоре...
ПС:20.04.2021 немного поправил код (нашел недочет)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
баш. от 10.10.2012 xxx: Я бы рассказал тебе, что в мире творится, но ты не любишь фантастику.


Последний раз редактировалось Ivanoff-iv Вт апр 20, 2021 07:29:24, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 18:32:40 
Электрический кот

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Я сейчас на вашем примере понял одну вещь. Есть две грани наших обсуждений. Одна сторона (вы) пытаетесь показать как можно просто решать КОНКРЕТНЫЕ примеры. Я же, со своей стороны, пытаюсь показать, что вы на каждом примере ломаете мозг, решаете эту конкретную задачу. Типа я не прав. Но на самом деле, все примеры, что вы показали, вы поломали голову, поломали моск, всегда решаете ОДИН конкретный пример. У которого нет будущего. Править программу, это в разы увеличивает умственные затраты. Мой же подход, он несколько не уверсален, нет, но смотрит в будущее. И дело не только в конечных автоматах. Вы не смотрите в будущее. Не думаете наперёд. Вот в чем проблема.
Технически, нет обработки дребезга контактов. С одной стороны, он не нужен. Ну выставили порты ещё раз. Да и хрен с ним. Технически ничего не изменилось. Но когда вам потребуется обработка дребезга, вот тогда вы все впухли на таких примерах. Ну как то так. Я делаю такой вывод... Да, у меня где то сложно, но мой подход можно применять как конструктор. У вас же всегда обработанная напильником уникальная вещь. Которую в случае чего проще выкинуть. И сделать заново новую.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 18:53:57 
Друг Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 1757
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 5339
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
не совсем...
я какраз, за универальность, потому и взял готовый пример и постарался скопировать его 1в1.
я пытался сделать максимально универсальную систему, позволяющую применить её в различных вариациях при этом сохранив понятность кода и получив минимальные накладные расходы (расход ОЗУ в 3 байта на процесс, думаю приемлем, а повторяющийся код дефайнов неплохо упаковывает оптимизатор).
антидребезг, кстати, добавить тоже совсем не проблема.
П.С.: завтра ещё покажу вытесняющую многозадачность с этим самым кодом... (оно и это умеет :) правда стек при этом расходует заметно)
П.С2.: программирование методом К.А. я тоже умею, уважаю и применяю :beer:

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
баш. от 10.10.2012 xxx: Я бы рассказал тебе, что в мире творится, но ты не любишь фантастику.


Последний раз редактировалось Ivanoff-iv Пн апр 19, 2021 18:57:23, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 18:57:03 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 112
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 998
Рейтинг сообщения: 0
Demiurg писал(а):
И сделать заново новую.
Все верно, берем и делаем новую.
К примеру, вот обработка триггерной кнопки с дребезгом, полностью


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 18:57:39 
Электрический кот

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Вытеснялку не надо. Мозги ещё свернем начинающим. Кооперативочка. Достаточно.
Dimon456. А теперь весь проект ТС-а... Вы так и не поняли. Ваш одностраничный подход, ммм, фигня, короче...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Пн апр 19, 2021 19:12:38 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 112
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 998
Рейтинг сообщения: 0
Demiurg писал(а):
Ваш одностраничный подход, ммм, фигня, короче...
А ваш многостраничный еще хуже, нужен компилятор типа eclipse, который умеет строить так называемые зависимости, что бы собрать буквально весь многостраничный код воедино, на одну страницу, что бы можно было увидеть весь код одним взглядом, а не прыгать по страницам что за чем идет и для чего это существует. Ни должно быть ни чего лишнего, только то что требуется.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 151 ]    , , 3, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: BV-Dial и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y