Обсуждаем контроллеры компании Atmel.
Ответить

Re: Нестабильность из-за задержек

Ср апр 21, 2021 09:03:36

Самсусамыч, ну и кто в твоем хексе увидит твой алгоритм?

Я пишу программы не для демонстрации своего алгоритма. Так как не являюсь виртуозом в данном направлении (даже в ближайшем приближении). Это пусть профессионалы демонстрируют меж собой свои умения. Для меня главное, чтобы программа корректно работала в железе как ранее задумано. А как это написано не столь важно. Да и исходники написанные в АВ мало кому помогут понять что в алгоритме реализовано. Или Вы забыли, что я пишу исключительно на АВ (Algorithm Builder) и другими языками программирования не владею? Ранее Вы с лёгкостью дизассемблировали мой код, а что случилось в этот раз? Стало лениво? При Ваших знаниях и умениях, Вам-то он зачем? Ткнуть меня носом, где я делаю что-то не так глядя с Вашей колокольни? Так я Вам сразу скажу, я много чего делаю не так… главное алгоритм работает в железе как тому требуется. И только этот факт мне приносит удовольствие. :)

Что касается макета… кому интересно, тот соберёт в железе или в протеусе… а кому не интересно, то о чём тогда разговор… :dont_know:

Ну а для АВ_шников то вот исходник крайней версии прошивки. Только тапками не закидывайте... :)))
Butt_OUT.zip
(24.06 KiB) Скачиваний: 61

Re: Нестабильность из-за задержек

Ср апр 21, 2021 09:35:01

NStorm, выше уже писал. Когда то и я учился на подобных обсуждениях. И также же как ТС, задам вопрос, мэтры подтягиваются и началось. Так тема живёт своей жизнью. На данный момент ничего плохого не происходит. Скажете, создадим новую тему. Есть но, новый топик будет не жизнеспособен. Потому что нужны конкретные примеры. В данной теме он есть. Есть ТЗ от ТС, и уже есть примеры.

Re: Нестабильность из-за задержек

Ср апр 21, 2021 10:50:07

Самсусамыч писал(а):Ранее Вы с лёгкостью дизассемблировали мой код, а что случилось в этот раз?
тогда мне было интересно, а в этот раз вообще нет интереса.
и в тот раз я установил АБ, а не занимался дизассемблированием.

Re: Нестабильность из-за задержек

Ср апр 21, 2021 11:18:37

Странный Вы человек… раз не интересно, зачем тогда Вам исходник? Вопрос риторический (если что). :)

Re: Нестабильность из-за задержек

Ср апр 21, 2021 11:31:39

Чтобы прочитать исходик "компилятор" в общем-то не нужен...

Re: Нестабильность из-за задержек

Ср апр 21, 2021 11:46:38

Возможно… я таких тонкостей не знаю.

Re: Нестабильность из-за задержек

Ср апр 21, 2021 19:13:13

Самсусамыч писал(а):раз не интересно, зачем тогда Вам исходник?
я говорил за других, кому тут интересно.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 02:14:08

Ivanoff-iv, аплодирую стоя! Даже не спрашиваю , как до этого дошёл. Сколько смотрел роликов и от камрада libral1973 , и в книгах Лебедева и Белова -- близко похожего не было, чтобы хоть как-то оттолкнуться или провести аналогию. Так что , " кирпичик для лего " получен и будет заложен.
P.S. Во истину, сколько людей -- столько и мнений, и каждый прав, и мнение каждого имеет место быть.
ВСЕМ СПАСИБО! Берегите себя и всех близких.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 06:10:30

Рад, что кому-то мой метод понравился, а, т.к. возможно теперь его применять буду не я один, то должен выложить не только преимущества, но и обнаруженные нюансы метода:
1) используемые в потоках переменные (все, которые должны пережить паузу (а точнее перезапуск) потока) должны быть глобальными или статик.
2) кодевижен не очень хорошо разделяет области видимости переменных - имена переменных в разных потоках не должны быть одинаковыми (это не косяк метода, это косяк кодевижена).
3) внутри цикла for паузу поставить не получилось (пока не знаю почему), но for можно заменить на while, там всё работает.
4) не выйдет поставить задержку внутри функции, вызываемой из потока.
Объявить поток в потоке, или в вызываемой из потока функции теоретически можно, но работать оно будет непредсказуемо. (т.к. чтобы правильно работали задержки в потоке поток должен вызываться регулярно, а поток внутри потока уже не будет вызываться регулярно)
5) семафоров и прочего тут нет, взаимодействие между потоками осуществляется через общие переменные.
в т.ч. и приостановка потока - делается цикл с задержкой, условие цикла меняется извне потока.
6) метод проверен в кодевижене и в алгоритм билдере, в других средах не проверялся... как проверю отпишусь.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 15:47:37

Посмотрел ваши примеры, обсуждение. ТС по ТЗ так и не отписался. Как быть в той ситуации, когда нажаты несколько кнопок. Предлагаю ТС-у все таки расколоться и пояснить как должны работать все кнопки на его устройстве.
А пока предлагаю усложнить задачу. Несколько кнопок нажимать нельзя.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 17:19:31

А пока предлагаю усложнить задачу. Несколько кнопок нажимать нельзя.

А если нажать, то что будет? :)

У меня два варианта на любой вкус… в первом можно нажимать любое количество кнопок в группе и они будут отрабатывать. Во втором варианте можно тоже нажимать любое количество кнопок в группе, но отработает только первая нажатая в группе, остальные в группе будут игнорироваться.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 18:25:37

Demiurg писал(а):А пока предлагаю усложнить задачу. Несколько кнопок нажимать нельзя.
А я все нажму, это не соревнование, есть ТЗ, делайте, или не делайте.

Ivanoff-iv, глянул я ваш код, это гораздо проще, чем у Demiurg, собирается вот в такое

Re: Нестабильность из-за задержек

Чт апр 22, 2021 18:44:29

Да, всё так.
раньше для выхода из потока была команда brake; но если пауза стояла в цикле, то брейк выходил из цикла, а не из потока... пришлось добавить метку.

Добавлено after 2 minutes 44 seconds:
Dimon456, а чем ты дефайны развернул? и в какой ИДЕ?

Re: Нестабильность из-за задержек

Чт апр 22, 2021 20:07:42

Ivanoff-iv писал(а):а чем ты дефайны развернул?
Ручками в блокноте Notepad++.

Re: Нестабильность из-за задержек

Чт апр 22, 2021 22:06:03

Demiurg, в моём проекте несколько нажатых кнопок не рассматривалось за ненужностью. Генератор ЗЧ, одна группа из 4-ёх кнопок -- выбор диапазона, другая -- делитель, коммутация -- реле Panasonic TX212 , разумеется, с ключами. Группы между собой независимы, одновременное нажатие в разных группах ничего особенного не даст, только штатное включение в каждой группе. А в пределах одной группы -- так сверх-одновременно не получится, с опозданием хоть на микросекунду последняя кнопка и сработает. По сути -- кнопка-защёлка, без антидребезга . 9-ая кнопка -- режим МЕАНДР. Моргунчик для большей наглядности, знать бы , что так архи-сложно -- можно было и не делать

Re: Нестабильность из-за задержек

Пт апр 23, 2021 03:11:53

Уточнение. Генератор ЗЧ отдельно, схема на мк отдельно или все на мк?

Re: Нестабильность из-за задержек

Пт апр 23, 2021 05:58:26

Sergbern, можно реализовать отработку множественного нажатия кнопок по разному:
1) "по старшинству" - кнопка с большим приоритетом отменяет действие кнопок с меньшим (так у тебя сделано)
2) "первая" - отрабатывается только первая нажатая кнопка,(легко сделать, организовав 2 потока (по потоку на каждую группу кнопок) и по маленькому циклу внутри потока - для каждой кнопки. В зависимости от условия цикла остальные кнопки могут блокироваться либо до отпускания этой кнопки (1 группа) или до отпускания всех кнопок группы (2я группа))
3) "последняя" - тут нужно добавить переменную состояния кнопок на прошлом витке, находить изменения состояния кнопок и по ним зажигать светодиоды.

присоединяюсь к вопросу о генераторе: нужно ли его в этот мк добавить?

Re: Нестабильность из-за задержек

Пт апр 23, 2021 07:17:01

Ivanoff-iv писал(а):присоединяюсь к вопросу о генераторе: нужно ли его в этот мк добавить?
Да, да, с шагом 1Гц и без джиттера.

Re: Нестабильность из-за задержек

Пт апр 23, 2021 07:32:16

У ТС три группы кнопок. Все независимые. Диапазон. Уровень сигнала. Меандр.
Получается, что у первых двух групп в рамках группы одновременное нажатие кнопок недопустимо. А одновременное нажатие трех групп допустимо. А это меняет всю картину... Я недаром просил ТЗ с самого начала.

Re: Нестабильность из-за задержек

Пт апр 23, 2021 07:34:00

Да, да, с шагом 1Гц и без джиттера.
Генератор... держи :)) :
Вложения
motalka13.zip
(95.43 KiB) Скачиваний: 11
Ответить