Например TDA7294

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



Текущее время: Пт май 14, 2021 04:04:21

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


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



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

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


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

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

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


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

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

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

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

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

Карма: 15
Рейтинг сообщений: 112
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1000
Рейтинг сообщения: 0
Ivanoff-iv, я не о том, о чем вы пишите.

Demiurg, В данном случае проект ТС уместится на одну страницу.
Кто об этом будет спорить, можно к примеру инициализацию в отдельную функцию и в отдельный файл запихать, удобно.
Но что бы поморгать светодиодом необходим многостраничный проект, о чем вы? Или задержку для лсд на КА? Еще хлеще.
Исход один, работает, не важно как написано.
А в ваших КА, ни чего нет, только основа, хотел глянуть как энкодер обрабатывается - нет, сам пиши. Где же ваша универсальность?
Ни библиотек, ни примеров кода, то же нет, ни чего нет. Ардуино хоть как-то поддерживается, а эта ...
Книжку кто-то написал и на полку положил, а вы ее нашли.


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

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

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

Карма: 23
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4319
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Ну и срааач! :)))
Для решения такой задачи хватит и задержки на таймере.
Лично у меня это самое первое, что внедряется сразу же после создания проекта.
В более серьезных ядрах, вроде ARM, под это дело даже выделен отдельный таймер, называемый системным.
Организуется просто:

Иходник


Заголовочник


Использование:
Код:

uint16_t delayTimer 
= 0;

// Взводим таймер на 100 мс
SYSTIM_Set(&delayTimer, 100);

// Проверяем, истекло ли время
if(SYSTIM_Get(delayTimer) <= 0)
{
    // Действия, если истекло
}

_________________
ааааааааааааа
Изображение I am DX168B and this is my favourite forum on internet!


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

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

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

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
Dimon456. Помните, я вам говорил, что у меня сложилось стойкое впечатление, что вы на других проецируете свои внутренние проблемы? Оказывается, ваша глубинная внутренняя проблема это отсутствие достойного примера энкодера. Гггг
DX168B. И че? Мы в теме AVR. И я как бы тоже могу показать свой пример программного таймера.


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

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

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

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


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

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
ТЗ обработчика энкодера. Кстати, уточняю. Мы говорим о крутилке, с кнопочкой или промышленном энкодере? Которые в ЧПУ станках ну и так далее.
Дарю одно из своих решений. Не знаю, устроит или нет. Ставим 2 D или JK триггера. Дальше обработка не составляет труда. Выходы триггеров ставим на внешние прерывания и дальше просто и тупо считаем. Щас картинку поищу.
Тут.


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

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


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

Карма: 4
Рейтинг сообщений: 120
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1044
Рейтинг сообщения: 0
А если и про энкодер говорить, то как же китайцы обошлись одной микрухой РТ6311 (2 энкодера, и одновременно)?

С этого момента поподробнее. Ссылки и так далее. А то я даже не понимаю, об чем вы...


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

Карма: 3
Рейтинг сообщений: 58
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 695
Рейтинг сообщения: 0
Выложите какой нибудь простой пример проект на вашем подходе. Архив с готовым, скомпилированным, рабочим проектом. Посмотрю на досуге.

Лень чота((

Вот небольшой кусочек обработчика кнопки одного из состояний машины
Код:
void State_Button_Push(dSM_Handler_t m)
{
    static SoftTimer_t    timeout;

    switch (m->Signal)
    {
        case DSM_SIGNAL_ENTRY:
            SoftTimer_Set(&timeout, TIME_BUTTON_PUSH);

            Data.Button.Count++;
           
            if (Data.Button.State)
            {
                Data.prevflag = Data.flag;
                Data.flag = Data.Button.State;
            }
           
            Set_Light();

            break;

        default:
            if (SoftTimer_Expired(&timeout))
            {
                m->NextState = State_Button_Hold;
            }

            if (Data.Button.State)
            {
                //Data.flag = Data.Button.State;
            }
            else
                {
                    m->NextState = State_Button_Release;
                }

            break;
     }
}


Здесь различаем количество КОРОТКИХ нажатий, либо длинное (удержание), либо отпуск кнопки. Вовсе не проблема посчитать короткие, длинные нажатия...


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

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

Мой пример обработки кнопок. Удержание, автоповтор.
Не стесняйтесь, поделитесь каким нибудь несложным проектом на вашем подходе. Можете в личку. Дальше не пойдёт.


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

Карма: 15
Рейтинг сообщений: 112
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1000
Рейтинг сообщения: 0
Demiurg писал(а):
Мой пример обработки кнопок. Удержание, автоповтор.
Шикарный пример. Просто отличный.
А особенно вот это
Дальше сами, ручками.
С чего же начать, наверно вот с этого
а потом вот это
и вспоминаем задание ТС
Задача в следующем: группа 4кнопки-4светодиода ( для краткости в дальнейшем 4кн-4сд) с зависимым включением, таких групп две, сами группы между собой независимы. Но нужна ещё 9-ая кн-триггер и к ней 2 сд: нажали кн -- один сд загорелся и второй заморгал, нажали ещё раз -- оба сд потухли
уважаемый Demiurg, мне все возможные комбинации описать? или еще как?
Я до этого дошел, а ТС до этого навряд ли дойдет.
У вас одновременно две кнопки нельзя нажать, а у ТС ожно три может нажиматься.

Так что не совсем все это универсально, и надо бы с напильником что-ли, хотя нет может болгаркой попробовать.

Ну да ладно, на досуге подумаю еще над этим автоматом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вт апр 20, 2021 10:35:36 
Это не хвост, это антенна

Карма: 21
Рейтинг сообщений: 223
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1469
Рейтинг сообщения: 0
Мой пример обработки кнопок. Удержание, автоповтор.

Это очень громоздко, а ведь ТС нужна не одна кнопка, а 10 и все желательно с антидребезгом... У меня есть пара классов кнопок, в них можно передать сразу 10 пинов, указать нужны ли длинные нажатия, отпускания или автоповторы, в случае одного из классов это задается для каждой кнопки индивидуально, дополнительно можно указать размер необязательной очереди и таблицу перекодировки, чтобы вместо масок возвращались именно коды кнопок, в случае использования очереди update() можно будет вызывать из прерывания и т.д.... В простейшем случае, без мигания светодиодом, код будет выглядеть так:
Код:
using pins = PinList<PC2, PD7, PD6, PD5, PD4, PD3, PC5, PD2, PD1, PD0>;
Buttons<pins, ButtonMode::ShortOnly, 1> buttons;

PinList<PB7, PB6, PB5, PB4, PB3, PB5, PB2, PB1, PB0> leds;

buttons.init();
leds.init<PinMode::PushPull>();

while(true)
{
    buttons.update();
    if(buttons.changed())
    {
        auto state = buttons.state;
        leds.write(state.current);
        if(state.shortPressed & 0x200) .... // trigger
    }
}

Правда он не скомпилируется потому что в списке диодов продублирован PB5, как было в оригинальном коде, и это наверняка ошибка.
Естественно это пример не для TC, но всем остальным есть куда стремиться :)


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

Карма: 18
Рейтинг сообщений: 509
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1874
Рейтинг сообщения: 0
Reflector, у ТС CVAVR. Где C++ нет в принципе, насколько я знаю, только голый Си. И зачем вообще примеры на другом языке, когда говорили только Сях.


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

Карма: 21
Рейтинг сообщений: 223
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1469
Рейтинг сообщения: 0
Reflector, у ТС CVAVR. Где C++ нет в принципе, насколько я знаю, только голый Си. И зачем вообще примеры на другом языке, когда говорили только Сях.

Я и написал, что пример не для ТС, но по большому счету то же самое можно сказать и про примеры от Demiurga или Ivanoff-iv, так что CVAVR тут не причем. Народ демонстрирует как решает конкретную задачу наиболее простым и/или унифицированным способом, в процессе чего иногда происходит заимствование более эффективных подходов. Естественно никто сразу как я писать не станет, но после сопоставления двух примеров некоторые сомнения в эффективности собственного подхода возникнуть могут :)


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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нестабильность из-за задержек
СообщениеДобавлено: Вт апр 20, 2021 11:29:38 
Это не хвост, это антенна

Карма: 21
Рейтинг сообщений: 223
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1469
Рейтинг сообщения: 0
Пошто не для ТС?
его код подошел в мою заготовку практически без переделок...

Не для ТС потому что если он посмотрит на эти макросы, то практически наверняка выберет более простой вариант:


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

Карма: 150
Рейтинг сообщений: 2452
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 16200
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Dimon456 писал(а):
С чего же начать, наверно вот с этого
Dimon456 писал(а):
а потом вот это
это же надо было так завернуть-заворотить?
сначала родил кучу функций типа Set_Is_Key_KnХ_Pressed (), потом по этим функциям определил некоторое число для каждой кнопки, потом по этому числу определил код кнопки.
а нет, чтобы сделать всего ОДНУ функцию, которая сразу бы возвращала код кнопки?
или до такого простого решения с достигнутых "высот" грех опускаться?

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


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

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

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


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

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

Starichok51, Dimon456 написал с моего примера. Поясню, почему в моем примере сделано именно так. Set_Is_Knopa_x это макрос. Компилятор этот макрос в дизасме компилирует достаточно компактно. Если у него хорошее настроение, то одной командой, sbis или sbic. Итак. У нас есть кнопы, разбросанные по разным портам. Собираем эти кнопы в переменной. Потом, если какая то кнопа нажата, проверяем на дребезг. Если прошли проверку дребезга, ищем соответствие бита, то есть кнопки коду нажатой кнопки. Этот метод хорош тем, что все кнопки в итоге опрашиваются как будто опрашиваем одну кнопку. Минус - нет отслеживания одновременно нажатых кнопок. Но мне это и не нужно было.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


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

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


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