Вт окт 12, 2021 01:09:16
Вт окт 12, 2021 05:38:47
Вт окт 12, 2021 10:22:30
Вт окт 12, 2021 11:01:14
Вт окт 12, 2021 11:18:31
Вт окт 12, 2021 11:20:32
uint16_t arr[] = { 10000, 5000, 1000 };
if (~PINA & (1<<PA0))
{
if(++i >= 3) i = 0;
}
uint32_t delay = arr[i] * time;
PORTD|=(1<<PD0);
pause (delay);
PORTD&=~(1<<PD0);
pause (delay);
Вт окт 12, 2021 11:48:04
Вт окт 12, 2021 11:56:17
if(++i >= 3)
{
uint32_t delay = arr[i] * time;
....
uint32_t arr[] = { 10000 * time, 5000 * time, 1000 * time };
while(1)
{
if (~PINA & (1<<PA0))
{
if(++i >= 3) i = 0;
}
PORTD|=(1<<PD0);
pause (arr[i]);
PORTD&=~(1<<PD0);
pause (arr[i]);
}
Вт окт 12, 2021 12:19:02
if( (PINA & (1<<PA0)) == 0) // Бит, соответсвующий выводу PA0 равен нулю (прижали подтянутую ногу к минусу)
{
// Делаем то, что надо
}
Вт окт 12, 2021 12:26:23
Вт окт 12, 2021 12:30:58
Вт окт 12, 2021 13:03:55
Вт окт 12, 2021 13:53:17
Ср окт 13, 2021 22:56:42
Пт окт 15, 2021 16:19:30
///////////////////////////////////////////////////////////////////////
// Keyboard process
void CKeyboard::Process()
{
// Detect pressed key
KbKeys pressedKey = CheckPressedKey();
// Keyboard process state machine
switch (state)
{
// Initial state
case KbProcState::INITIAL:
if(pressedKey != KbKeys::KEY_NONE)
{
prevKey = pressedKey;
kbTim.SetTimer(KEYBOARD_DEBOUNCE_DELAY); // begin debounce timer
state = KbProcState::KEY_PRESS_DEBOUNCE;
}
break;
// Press debounsce
case KbProcState::KEY_PRESS_DEBOUNCE:
if(pressedKey != prevKey)
{
state = KbProcState::INITIAL;
}
else
{
if(kbTim.CheckTimer() == true) // check debounce timer
{
kbTim.SetTimer(KEYBOARD_LONGPRESS_DELAY);
#ifndef KEYBOARD_EVENT_KEY_AND_CLICK_SYNC
currentKey = pressedKey;
#endif
currentClick = ClickType::NO_CLICK;
state = KbProcState::KEY_PRESS;
}
}
break;
// Key pressed state
case KbProcState::KEY_PRESS:
if(pressedKey == KbKeys::KEY_NONE)
{
if(kbTim.CheckTimer() == false)
{
currentClick = ClickType::SHORT_CLICK;
#ifdef KEYBOARD_EVENT_KEY_AND_CLICK_SYNC
currentKey = prevKey;
#endif
}
state = KbProcState::INITIAL;
}
if(kbTim.CheckTimer() == true)
{
currentClick = ClickType::LONG_CLICK;
#ifdef KEYBOARD_EVENT_KEY_AND_CLICK_SYNC
currentKey = pressedKey;
#endif
state = KbProcState::KEY_UNPRESS;
}
break;
// Wait for unpress key
case KbProcState::KEY_UNPRESS:
if(pressedKey == KbKeys::KEY_NONE)
{
#ifndef KEYBOARD_EVENT_KEY_AND_CLICK_SYNC
currentKey = pressedKey;
#endif
state = KbProcState::INITIAL;
}
break;
// Other states
default:
currentKey = KbKeys::KEY_NONE;
currentClick = ClickType::NO_CLICK;
state = KbProcState::INITIAL;
break;
}
}
Сб окт 16, 2021 23:29:02
Сб окт 16, 2021 23:42:53
Пн окт 18, 2021 02:24:41
Чт фев 03, 2022 14:30:05
Чт окт 06, 2022 11:03:05