Сб дек 10, 2016 18:49:33
int8_t Buttons_Timeout[8]; // Антидребезг кнопок.
#define Button_Delay 50
void Buttons_Poll(void) {
if (PINB & 1) {
Buttons_Timeout[0] = 0;
} else {
Buttons_Timeout[0]++;
if (Buttons_Timeout[0] == Button_Delay) {
// Some event here
};
if (Buttons_Timeout[0] > Button_Delay)
Buttons_Timeout[0] = Button_Delay;
};
if (PINA & 1) {
Buttons_Timeout[1] = 0;
} else {
Buttons_Timeout[1]++;
if (Buttons_Timeout[1] == Button_Delay) {
// Some event here
};
if (Buttons_Timeout[1] > Button_Delay)
Buttons_Timeout[1] = Button_Delay;
};
// Другие обработчики
};
Сб дек 10, 2016 19:00:04
Сб дек 10, 2016 21:38:45
Сб дек 10, 2016 21:48:37
roman.com писал(а):...
Сб дек 10, 2016 22:16:51
Сб дек 10, 2016 23:05:13
Demiurg писал(а):Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код. То есть подспудное желание показать, типа вот как у меня короче чем у тебя. Но каждый раз я вижу какие-то огрызки решения. Вы покажите полностью ваш код. От опроса кнопок до определения кода кнопки. И как остальным модулям реагировать на события, коды кнопок и так далее.
Пн дек 12, 2016 09:47:52
Пн дек 12, 2016 09:50:02
Пн дек 12, 2016 10:04:16
Пн дек 12, 2016 11:54:58
это время реакции человека, а не время, затрачиваемое на замыкание контактов.Аlex писал(а):Щелчёк - это ~ 0.2...0.3 сек.
0,32 сек. вполне согласуется с твоим понятием "щелчка" кнопкой. и как я уже сказал, 0,32 сек. вполне достаточно, чтобы успеть вовремя отпустить кнопку. и как я уже сказал, что даже для 0,32 сек. нужно время для приобретения навыка вовремя отпускать кнопку.Starichok51 писал(а):мне приходилось работать с промышленными приборами, у которых приборный цикл составлял 0,32 сек.
Пн дек 12, 2016 12:01:08
Тут я совершенно согласен. По этому я и назвал тех "программистов" таковыми. Они совершенно не думали о пользователях, а делали как им хочется(проще, ...).горе-программист тот, кто не заботится о людях
Пн дек 12, 2016 12:52:53
на этот случай у меня есть бит блокировки кнопок. можно удерживать хоть "до посинения".Аlex писал(а):А сколько он будет её удерживать, 0.1 сек или 1.0 сек - это уже его дело.
Пн дек 12, 2016 13:22:11
Пн янв 30, 2017 01:03:22
uint8_t Button_count_POWER = 0;
uint8_t Button_state_POWER = 0;
uint8_t Button_repeat_POWER = 0;
#define DELAY_PRESS_BUTTON 5
#define BUTTON_REPEAT 50
#define BUTTON_POWER_PRESS (GPIOA->IDR & GPIO_Pin_0)
if (BUTTON_POWER_PRESS != 0)
{
if (Button_count_POWER < DELAY_PRESS_BUTTON)
Button_count_POWER++; else
{
if (Button_state_POWER == 1) //Автоповтор
{
Button_repeat_POWER++;
if (Button_repeat_POWER == BUTTON_REPEAT)
{
Button_repeat_POWER = 0;
//
//Код обработки повторного нажатия кнопки.
//
}
}
if (Button_state_POWER == 0) //Одинарное нажатие
{
Button_repeat_POWER = 0;
Button_state_POWER = 1;
//
//Код обработки нажатия кнопки.
//
}
}
} else
{
if (Button_count_POWER > 0)
Button_count_POWER--; else Button_state_POWER = 0;
}
Demiurg писал(а):Oxford - ваше видео тонкое послатие найух. Что вы показали, спрашивается? Какое-то ублюдочное решение? Ублюдочное не в плане автора, а самого решения.
Если вздумаете возмутиться. Вот мой пример. Ссылка.
Примерщикам: Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код. То есть подспудное желание показать, типа вот как у меня короче чем у тебя. Но каждый раз я вижу какие-то огрызки решения. Вы покажите полностью ваш код. От опроса кнопок до определения кода кнопки. И как остальным модулям реагировать на события, коды кнопок и так далее.
Пн янв 30, 2017 13:54:39
Нe всякий мужчина (да и девушка) поймёт, что если двое хвастаются "у кого - короче" - значит программисты!Oxford писал(а):Demiurg писал(а):Примерщикам: Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код.
Ср фев 01, 2017 08:03:36
учитывая время реакции человека, ты можешь объяснить, а на хера нужно так часто опрашивать кнопки?Oxford писал(а): будет постоянно вызывать опрос каждые 10мс.
Ср фев 01, 2017 12:40:54
Ср фев 01, 2017 14:15:12
Starichok51 писал(а):учитывая время реакции человека, ты можешь объяснить, а на хера нужно так часто опрашивать кнопки?Oxford писал(а): будет постоянно вызывать опрос каждые 10мс.
Чт фев 02, 2017 13:00:37
Чт фев 02, 2017 13:39:00
я бы ставил вопрос иначе: целесообразно ли ставить внешние резисторы при возможности подтянуть кнопку изнутри? и в подавляющем количестве домашних поделок-игрушек ответ был бы "нецелесообразно": дополнительные компоненты - это удорожание и усложнение.FreshMan писал(а):а целесообразно ли включать програмно внутренние подтягивающие резисторы при наличие оных извне ?