Size: a a a

2021 August 31

W

Wild_Wind in Embedded Group
Статик не меняет тип. Он лишь меняет время жизни (лайфтайм) объекта.
источник

h

hold3r in Embedded Group
Статик меняет место размещение объекта в памяти
источник

h

hold3r in Embedded Group
Я не специалист по статикам, но статик это просто )
источник

W

Wild_Wind in Embedded Group
Это следствие изменения лайфтайма. А то куда ты его линкерскриптом засунешь - вторично.
источник

VO

Vyacheslav Olkhovche... in Embedded Group
оба ответа не верны статик не имеет отношения к простоте
источник

h

hold3r in Embedded Group
6.2.4: An object whose identifier is declared without the storage-class specifier
_Thread_local, and either with external or internal linkage or with the storage-class
specifier static, has static storage duration. Its lifetime is the entire execution of the
program and its stored value is initialized only once, prior to program startup.

Всё таки duration это следствие storage-class specifier.
источник

h

hold3r in Embedded Group
Засовываешь в .bss и она живет вечно
источник

W

Wild_Wind in Embedded Group
О том и речь. Что есть спецификатор, который гарантирует тебе определенное стандартом время жизни. А как это реализовано - это совсем иной разговор. Могу и на флешку положить и каждый раз считывать.
источник

AT

Alexey Tsvetkov in Embedded Group
Знатоки, расскажите мне, зачем в хидерах все объявления функций сделаны extern?
источник

IN

ISAK Neuman in Embedded Group
Прошу только опровергнуть или подтвердить без каких либо доказательств.

Обработчик же работает только во время срабатывания а дальше нет же смысла его держать?
Если включено прерывание только по переднему.
источник

l

linxuil in Embedded Group
Что значит держать в вашей терминологии?

По картинке все верно. Как только вызванный обработчик закончил свою работу, управление передается в главную программу или  следующему менее приоритетному обработчику прерывания, если сработало еще несколько прерываний, пока вы выполняли первое прерывание.
источник

IN

ISAK Neuman in Embedded Group
кнопку имеется ввиду тут же EXTI работает.
источник

l

linxuil in Embedded Group
По этой причине, кстати - нельязя и опасно делать долгую обработку в прерываниях, там максимум ставим флаги или записываем пару байт и сразу выходтм из прерывания.
источник

AT

Alexey Tsvetkov in Embedded Group
Когда прерывание работает по фронту там ничего не держится.
источник

IN

ISAK Neuman in Embedded Group
я просто пытаюсь обработать функцию удержания
источник

IN

ISAK Neuman in Embedded Group
кнопки
источник

V

Vitaly in Embedded Group
так в прерываниях просто смотри фронты кнопки, а в отдельном обработчике(таймер?) уже определяй как жмакнули, долго или нет
источник

l

linxuil in Embedded Group
Тогда, если хотите сделать прям все в прерывании и на переферии, при первом нажатии можете поставить таймер и уже в прерыааниях таймера смотреть - не отжали ли кнопку. Если поставить таймер на 10мс, 10 раз вызванный таймер говорит, что у вас не было отпусканий, плбс не было больше срабатываний exti, то значит кнопку не отпускали.

Но лучше еще обрабатывать спадающий фронт, чтобы точно знать, что кнопку не отпускали.

Вот у нас есть 3 признака, которые говорят о длительности нажатия и о том, что кнопку точно не отпускали. И вот этот совокупный флаг обрабатываем в нашей программе основной в цикле.

Но озаботьтесь обработкой дребезга или хардварнрй в виде конденсатора и рещистора или программной.
источник

IN

ISAK Neuman in Embedded Group
Просто я думаю, что пример выше на ардуино (которого сейчас скину) работает только благодаря свойству механической кнопик которая при отпускании тоже создает некоторый дребезг.
источник

IN

ISAK Neuman in Embedded Group
вот
источник