feat: 更新旋转编码器配置
This commit is contained in:
@@ -17,10 +17,10 @@ uint8_t by_get_rb_status(void)
|
||||
|
||||
void by_rb_init(void)
|
||||
{
|
||||
gpio_init(E9, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
gpio_init(E10, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
gpio_init(E11, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
gpio_init(B9, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
gpio_init(E0, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
gpio_init(E1, GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
|
||||
exti_init(E9, EXTI_TRIGGER_FALLING);
|
||||
exti_init(E11, EXTI_TRIGGER_BOTH);
|
||||
exti_init(E0, EXTI_TRIGGER_FALLING);
|
||||
exti_init(E1, EXTI_TRIGGER_BOTH);
|
||||
}
|
||||
|
||||
54
app/isr.c
54
app/isr.c
@@ -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,22 +240,6 @@ 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);
|
||||
|
||||
} 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)) {
|
||||
@@ -269,7 +268,6 @@ void EXTI15_10_IRQHandler(void)
|
||||
EXTI_ClearITPendingBit(EXTI_Line15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TIM1_UP_IRQHandler(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user