Например TDA7294

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





Текущее время: Чт мар 28, 2024 11:13:12

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


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



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

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


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

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

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

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

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


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

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

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

Карма: 25
Рейтинг сообщений: 96
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4470
Откуда: Главный Улей России (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!


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

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

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


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

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

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


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

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


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

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


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

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

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


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

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 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
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
...

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


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

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

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

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


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

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 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 
Поставщик валерьянки для Кота

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


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

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

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


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

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

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

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

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


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

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

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


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

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

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

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

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


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

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


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

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


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

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


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