feat: 更新旋转编码器配置

This commit is contained in:
bmy
2024-04-16 09:58:51 +08:00
parent c5edd57aa8
commit 36ca756209
2 changed files with 55 additions and 57 deletions

102
app/isr.c
View File

@@ -152,6 +152,15 @@ void DVP_IRQHandler(void)
void EXTI0_IRQHandler(void)
{
if (SET == EXTI_GetITStatus(EXTI_Line0)) {
if (rotate_button == rotate_button_none) {
if (SET == gpio_get_level(B9)) {
rotate_button = rotate_button_backward;
queue_add_element(BY_BACKWARD);
} else {
rotate_button = rotate_button_forward;
queue_add_element(BY_FORWARD);
}
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
@@ -159,6 +168,23 @@ void EXTI0_IRQHandler(void)
void EXTI1_IRQHandler(void)
{
if (SET == EXTI_GetITStatus(EXTI_Line1)) {
static uint64_t time_via = 0;
system_delay_ms(10);
if (RESET == gpio_get_level(E1)) {
time_via = system_get_tick();
} else if (SET == gpio_get_level(E1)) {
time_via = system_get_tick() - time_via;
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
rotate_button = rotate_button_press_long;
queue_add_element(BY_PRESS_LONG);
} else {
rotate_button = rotate_button_press_short;
queue_add_element(BY_PRESS_SHORT);
}
time_via = 0;
}
EXTI_ClearITPendingBit(EXTI_Line1);
}
}
@@ -199,17 +225,6 @@ void EXTI9_5_IRQHandler(void)
EXTI_ClearITPendingBit(EXTI_Line8);
}
if (SET == EXTI_GetITStatus(EXTI_Line9)) {
if (rotate_button == rotate_button_none) {
if (SET == gpio_get_level(E10)) {
rotate_button = rotate_button_backward;
queue_add_element(BY_BACKWARD);
} else {
rotate_button = rotate_button_forward;
queue_add_element(BY_FORWARD);
}
}
EXTI_ClearITPendingBit(EXTI_Line9);
}
}
@@ -225,49 +240,32 @@ void EXTI15_10_IRQHandler(void)
EXTI_ClearITPendingBit(EXTI_Line10);
}
if (SET == EXTI_GetITStatus(EXTI_Line11)) {
static uint64_t time_via = 0;
system_delay_ms(10);
if (RESET == gpio_get_level(E11)) {
time_via = system_get_tick();
EXTI_ClearITPendingBit(EXTI_Line11);
} else if (SET == gpio_get_level(E11)) {
time_via = system_get_tick() - time_via;
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
rotate_button = rotate_button_press_long;
queue_add_element(BY_PRESS_LONG);
EXTI_ClearITPendingBit(EXTI_Line11);
}
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
EXTI_ClearITPendingBit(EXTI_Line12);
}
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
tof_module_exti_handler();
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
} else {
rotate_button = rotate_button_press_short;
queue_add_element(BY_PRESS_SHORT);
}
time_via = 0;
EXTI_ClearITPendingBit(EXTI_Line11);
}
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
EXTI_ClearITPendingBit(EXTI_Line12);
}
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
tof_module_exti_handler();
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
EXTI_ClearITPendingBit(EXTI_Line13);
}
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_light_callback();
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line14);
}
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_sound_callback();
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line15);
}
EXTI_ClearITPendingBit(EXTI_Line13);
}
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_light_callback();
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line14);
}
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_sound_callback();
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line15);
}
}