pref: 改进按键体验
This commit is contained in:
@@ -51,3 +51,13 @@ void by_buzzer_add(uint16_t tone)
|
|||||||
{
|
{
|
||||||
queue_add_element(tone);
|
queue_add_element(tone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void by_buzzer_run(void)
|
||||||
|
{
|
||||||
|
if (queue_long != 0) {
|
||||||
|
pwm_init(BUZZER_PIN, a[0], 5000);
|
||||||
|
queue_pop_element();
|
||||||
|
system_delay_ms(100);
|
||||||
|
pwm_set_duty(BUZZER_PIN, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,4 +20,5 @@ extern void queue_pop_element(void);
|
|||||||
extern void queue_pop_read(void);
|
extern void queue_pop_read(void);
|
||||||
extern void by_buzzer_init(void);
|
extern void by_buzzer_init(void);
|
||||||
extern void by_buzzer_add(uint16_t tone);
|
extern void by_buzzer_add(uint16_t tone);
|
||||||
|
extern void by_buzzer_run(void);
|
||||||
#endif
|
#endif
|
||||||
80
app/isr.c
80
app/isr.c
@@ -202,61 +202,73 @@ void EXTI9_5_IRQHandler(void)
|
|||||||
void EXTI15_10_IRQHandler(void)
|
void EXTI15_10_IRQHandler(void)
|
||||||
{
|
{
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line10)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line10)) {
|
||||||
system_delay_ms(10);
|
if (button_event == button_event_none) {
|
||||||
if (RESET == gpio_get_level(BUTTON_LEFT_PIN)) {
|
system_delay_ms(10);
|
||||||
button_event = button_event_left;
|
if (RESET == gpio_get_level(BUTTON_LEFT_PIN)) {
|
||||||
|
button_event = button_event_left;
|
||||||
|
}
|
||||||
|
by_buzzer_add(1250);
|
||||||
}
|
}
|
||||||
by_buzzer_add(1250);
|
|
||||||
EXTI_ClearITPendingBit(EXTI_Line10);
|
EXTI_ClearITPendingBit(EXTI_Line10);
|
||||||
}
|
}
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line11)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line11)) {
|
||||||
system_delay_ms(10);
|
if (button_event == button_event_none) {
|
||||||
if (RESET == gpio_get_level(BUTTON_DOWN_PIN)) {
|
system_delay_ms(10);
|
||||||
button_event = button_event_down;
|
if (RESET == gpio_get_level(BUTTON_DOWN_PIN)) {
|
||||||
|
button_event = button_event_down;
|
||||||
|
}
|
||||||
|
by_buzzer_add(1250);
|
||||||
}
|
}
|
||||||
by_buzzer_add(1250);
|
|
||||||
EXTI_ClearITPendingBit(EXTI_Line11);
|
EXTI_ClearITPendingBit(EXTI_Line11);
|
||||||
}
|
}
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
|
||||||
system_delay_ms(10);
|
if (button_event == button_event_none) {
|
||||||
if (RESET == gpio_get_level(BUTTON_UP_PIN)) {
|
system_delay_ms(10);
|
||||||
button_event = button_event_up;
|
if (RESET == gpio_get_level(BUTTON_UP_PIN)) {
|
||||||
|
button_event = button_event_up;
|
||||||
|
}
|
||||||
|
by_buzzer_add(1250);
|
||||||
}
|
}
|
||||||
by_buzzer_add(1250);
|
|
||||||
EXTI_ClearITPendingBit(EXTI_Line12);
|
EXTI_ClearITPendingBit(EXTI_Line12);
|
||||||
}
|
}
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
|
||||||
static uint64_t time_via = 0;
|
if (button_event == button_event_none) {
|
||||||
system_delay_ms(10);
|
static uint64_t time_via = 0;
|
||||||
if (RESET == gpio_get_level(BUTTON_CENTER_PIN)) {
|
system_delay_ms(10);
|
||||||
time_via = system_get_tick();
|
if (RESET == gpio_get_level(BUTTON_CENTER_PIN)) {
|
||||||
} else if (SET == gpio_get_level(BUTTON_CENTER_PIN)) {
|
time_via = system_get_tick();
|
||||||
time_via = system_get_tick() - time_via;
|
} else if (SET == gpio_get_level(BUTTON_CENTER_PIN)) {
|
||||||
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
|
time_via = system_get_tick() - time_via;
|
||||||
button_event = button_event_center_lp;
|
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
|
||||||
by_buzzer_add(2000);
|
button_event = button_event_center_lp;
|
||||||
} else {
|
by_buzzer_add(2000);
|
||||||
button_event = button_event_center_sp;
|
} else {
|
||||||
by_buzzer_add(1800);
|
button_event = button_event_center_sp;
|
||||||
|
by_buzzer_add(1800);
|
||||||
|
}
|
||||||
|
time_via = 0;
|
||||||
}
|
}
|
||||||
time_via = 0;
|
|
||||||
}
|
}
|
||||||
EXTI_ClearITPendingBit(EXTI_Line13);
|
EXTI_ClearITPendingBit(EXTI_Line13);
|
||||||
}
|
}
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
|
||||||
system_delay_ms(10);
|
if (button_event == button_event_none) {
|
||||||
if (RESET == gpio_get_level(BUTTON_RIGHT_PIN)) {
|
system_delay_ms(10);
|
||||||
button_event = button_event_right;
|
if (RESET == gpio_get_level(BUTTON_RIGHT_PIN)) {
|
||||||
by_buzzer_add(1250);
|
button_event = button_event_right;
|
||||||
|
by_buzzer_add(1250);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EXTI_ClearITPendingBit(EXTI_Line14);
|
EXTI_ClearITPendingBit(EXTI_Line14);
|
||||||
}
|
}
|
||||||
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
|
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
|
||||||
system_delay_ms(10);
|
if (button_event == button_event_none) {
|
||||||
if (RESET == gpio_get_level(BUTTON_SIDE_PIN)) {
|
system_delay_ms(10);
|
||||||
button_event = button_event_side;
|
if (RESET == gpio_get_level(BUTTON_SIDE_PIN)) {
|
||||||
by_buzzer_add(2000);
|
button_event = button_event_side;
|
||||||
by_buzzer_add(1500);
|
by_buzzer_add(2000);
|
||||||
|
by_buzzer_add(1500);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EXTI_ClearITPendingBit(EXTI_Line15);
|
EXTI_ClearITPendingBit(EXTI_Line15);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,23 +36,22 @@ int main(void)
|
|||||||
debug_init();
|
debug_init();
|
||||||
// mt9v03x_init();
|
// mt9v03x_init();
|
||||||
ips200_init(IPS200_TYPE_SPI);
|
ips200_init(IPS200_TYPE_SPI);
|
||||||
usb_cdc_init();
|
|
||||||
|
|
||||||
by_led_init();
|
by_led_init();
|
||||||
by_buzzer_init();
|
by_buzzer_init();
|
||||||
by_button_init();
|
by_button_init();
|
||||||
|
|
||||||
jj_bt_init();
|
// jj_bt_init();
|
||||||
// jj_param_eeprom_init();
|
// jj_param_eeprom_init();
|
||||||
|
|
||||||
Page_Init();
|
Page_Init();
|
||||||
|
|
||||||
pit_ms_init(TIM6_PIT, 2);
|
// pit_ms_init(TIM6_PIT, 2);
|
||||||
pit_ms_init(TIM1_PIT, 2);
|
// pit_ms_init(TIM1_PIT, 2);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
Page_Run();
|
Page_Run();
|
||||||
queue_pop_read();
|
by_buzzer_run();
|
||||||
if (mt9v03x_finish_flag) {
|
if (mt9v03x_finish_flag) {
|
||||||
// 该操作消耗大概 1970 个 tick,折合约 110us
|
// 该操作消耗大概 1970 个 tick,折合约 110us
|
||||||
memcpy(mt9v03x_image_copy[0], mt9v03x_image[0], (sizeof(mt9v03x_image_copy) / sizeof(uint8_t)));
|
memcpy(mt9v03x_image_copy[0], mt9v03x_image[0], (sizeof(mt9v03x_image_copy) / sizeof(uint8_t)));
|
||||||
|
|||||||
Reference in New Issue
Block a user