improvement
This commit is contained in:
parent
09d687dcdf
commit
0f649630e6
@ -105,12 +105,12 @@ void ui_com_freq_digital(uint8_t clear, uint8_t only_pointer) {
|
|||||||
uint8_t blink_state = (ticks_ms() / UI_BLINK_MS) % 2;
|
uint8_t blink_state = (ticks_ms() / UI_BLINK_MS) % 2;
|
||||||
uint8_t blink_state2 = !(global_data.point_mode & G_PMOD_PBLINK_MASK);
|
uint8_t blink_state2 = !(global_data.point_mode & G_PMOD_PBLINK_MASK);
|
||||||
if (!(global_data.point_mode & G_PMOD_PMOVE_MASK) || (blink_state ^ blink_state2)) {
|
if (!(global_data.point_mode & G_PMOD_PMOVE_MASK) || (blink_state ^ blink_state2)) {
|
||||||
uint8_t p_pos = (global_data.point_mode & G_POMD_POS_MASK) >> G_POMD_POS_BOFF;
|
uint8_t p_pos = bit_fetch(global_data.point_mode, G_POMD_POS_BOFF, G_POMD_POS_MASK);
|
||||||
uint16_t p_off = (4 - p_pos) * 18 + 2 + off_x;
|
uint16_t p_off = (4 - p_pos) * 18 + 2 + off_x;
|
||||||
ST7735_FillRectangle(p_off, off_y + 33, 14, 2, color_orange);
|
ST7735_FillRectangle(p_off, off_y + 33, 14, 2, color_orange);
|
||||||
global_data.point_mode = global_data.point_mode | G_PMOD_PBLINK2_MASK;
|
bit_set(global_data.point_mode, G_PMOD_PBLINK2_MASK);
|
||||||
} else {
|
} else {
|
||||||
global_data.point_mode = global_data.point_mode & (~G_PMOD_PBLINK2_MASK);
|
bit_clear(global_data.point_mode, G_PMOD_PBLINK2_MASK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint16_t scale = 10000;
|
uint16_t scale = 10000;
|
||||||
|
@ -42,7 +42,7 @@ void app_main_loop() {
|
|||||||
if (event_type == kp_ROTATE_RIGHT || event_type == kp_ROTATE_LEFT) {
|
if (event_type == kp_ROTATE_RIGHT || event_type == kp_ROTATE_LEFT) {
|
||||||
if (global_data.point_mode & G_PMOD_MODE_MASK) {
|
if (global_data.point_mode & G_PMOD_MODE_MASK) {
|
||||||
// 指针模式调整
|
// 指针模式调整
|
||||||
uint8_t p_pos = (global_data.point_mode & G_POMD_POS_MASK) >> G_POMD_POS_BOFF;
|
uint8_t p_pos = bit_fetch(global_data.point_mode, G_POMD_POS_BOFF, G_POMD_POS_MASK);
|
||||||
if (global_data.point_mode & G_PMOD_PMOVE_MASK) {
|
if (global_data.point_mode & G_PMOD_PMOVE_MASK) {
|
||||||
// 调整指针位置
|
// 调整指针位置
|
||||||
if (event_type == kp_ROTATE_RIGHT) {
|
if (event_type == kp_ROTATE_RIGHT) {
|
||||||
@ -52,8 +52,7 @@ void app_main_loop() {
|
|||||||
p_pos += event_value;
|
p_pos += event_value;
|
||||||
}
|
}
|
||||||
p_pos %= 5; // 0~4, 右边第一个数值为0号位置
|
p_pos %= 5; // 0~4, 右边第一个数值为0号位置
|
||||||
global_data.point_mode = global_data.point_mode & (~G_POMD_POS_MASK);
|
bit_replace(global_data.point_mode, p_pos, G_POMD_POS_BOFF, G_POMD_POS_MASK);
|
||||||
global_data.point_mode = global_data.point_mode | ((p_pos << G_POMD_POS_BOFF) & G_POMD_POS_MASK);
|
|
||||||
printf("Adjust Point Pos: %u\n", p_pos);
|
printf("Adjust Point Pos: %u\n", p_pos);
|
||||||
} else {
|
} else {
|
||||||
// 调整指针位置的数字
|
// 调整指针位置的数字
|
||||||
@ -120,6 +119,8 @@ void app_main_loop() {
|
|||||||
global_data.freq = num_freq / 5;
|
global_data.freq = num_freq / 5;
|
||||||
}
|
}
|
||||||
printf("Adjust Freq: %u\n", global_data.freq);
|
printf("Adjust Freq: %u\n", global_data.freq);
|
||||||
|
__limit_freq_range();
|
||||||
|
__send_freq();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 直接调整频率
|
// 直接调整频率
|
||||||
@ -128,9 +129,9 @@ void app_main_loop() {
|
|||||||
} else {
|
} else {
|
||||||
global_data.freq -= event_value;
|
global_data.freq -= event_value;
|
||||||
}
|
}
|
||||||
|
printf("Adjust Freq: %u\n", global_data.freq);
|
||||||
__limit_freq_range();
|
__limit_freq_range();
|
||||||
__send_freq();
|
__send_freq();
|
||||||
printf("Adjust Freq: %u\n", global_data.freq);
|
|
||||||
}
|
}
|
||||||
ui_com_freq_digital(1, 0);
|
ui_com_freq_digital(1, 0);
|
||||||
} else if (event_type == kp_SHORT_CLICK) {
|
} else if (event_type == kp_SHORT_CLICK) {
|
||||||
@ -138,16 +139,16 @@ void app_main_loop() {
|
|||||||
if (event_value == kp_KEYENCODER) {
|
if (event_value == kp_KEYENCODER) {
|
||||||
if (global_data.point_mode & G_PMOD_PMOVE_MASK) {
|
if (global_data.point_mode & G_PMOD_PMOVE_MASK) {
|
||||||
// 退出移动指针模式
|
// 退出移动指针模式
|
||||||
global_data.point_mode = global_data.point_mode & (~G_PMOD_PMOVE_MASK);
|
bit_clear(global_data.point_mode, G_PMOD_PMOVE_MASK);
|
||||||
printf("Exit Pointer Move Mode.\n");
|
printf("Exit Pointer Move Mode.\n");
|
||||||
} else {
|
} else {
|
||||||
// 进入移动指针模式
|
// 进入移动指针模式
|
||||||
global_data.point_mode = global_data.point_mode | G_PMOD_PMOVE_MASK;
|
bit_set(global_data.point_mode, G_PMOD_PMOVE_MASK);
|
||||||
uint8_t blink_state = (ticks_ms() / UI_BLINK_MS) % 2; // 该时间段指示条消失
|
uint8_t blink_state = (ticks_ms() / UI_BLINK_MS) % 2; // 该时间段指示条消失
|
||||||
if (blink_state) {
|
if (blink_state) {
|
||||||
global_data.point_mode = global_data.point_mode | G_PMOD_PBLINK_MASK;
|
bit_set(global_data.point_mode, G_PMOD_PBLINK_MASK);
|
||||||
} else {
|
} else {
|
||||||
global_data.point_mode = global_data.point_mode & (~G_PMOD_PBLINK_MASK);
|
bit_clear(global_data.point_mode, G_PMOD_PBLINK_MASK);
|
||||||
}
|
}
|
||||||
printf("Enter Pointer Move Mode.\n");
|
printf("Enter Pointer Move Mode.\n");
|
||||||
}
|
}
|
||||||
@ -171,14 +172,12 @@ void app_main_loop() {
|
|||||||
if (event_value == kp_KEYENCODER) {
|
if (event_value == kp_KEYENCODER) {
|
||||||
if (global_data.point_mode & G_PMOD_MODE_MASK) {
|
if (global_data.point_mode & G_PMOD_MODE_MASK) {
|
||||||
// 退出指针模式
|
// 退出指针模式
|
||||||
global_data.point_mode = global_data.point_mode & (~G_PMOD_MODE_MASK);
|
bit_clear(global_data.point_mode, G_PMOD_MODE_MASK);
|
||||||
__limit_freq_range();
|
|
||||||
__send_freq();
|
|
||||||
printf("Exit Pointer Mode.\n");
|
printf("Exit Pointer Mode.\n");
|
||||||
} else {
|
} else {
|
||||||
// 进入指针模式
|
// 进入指针模式
|
||||||
global_data.point_mode = global_data.point_mode | G_PMOD_MODE_MASK;
|
bit_set(global_data.point_mode, G_PMOD_MODE_MASK);
|
||||||
global_data.point_mode = global_data.point_mode & (~G_PMOD_PMOVE_MASK);
|
bit_clear(global_data.point_mode, G_PMOD_PMOVE_MASK);
|
||||||
printf("Enter Pointer Mode.\n");
|
printf("Enter Pointer Mode.\n");
|
||||||
}
|
}
|
||||||
ui_com_freq_digital(1, 0);
|
ui_com_freq_digital(1, 0);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
GlobalData global_data = {
|
GlobalData global_data = {
|
||||||
|
0b0000000000000000, //flag
|
||||||
880 * 2, // freq
|
880 * 2, // freq
|
||||||
G_RF_MODE_FM, //rf_mode
|
G_RF_MODE_FM, //rf_mode
|
||||||
16, // volumn
|
16, // volumn
|
||||||
|
@ -8,16 +8,26 @@
|
|||||||
#define G_AM_FREQ_MIN 100
|
#define G_AM_FREQ_MIN 100
|
||||||
#define G_AM_FREQ_MAX 33000
|
#define G_AM_FREQ_MAX 33000
|
||||||
|
|
||||||
|
#define G_FL_SIGNAL 0b0000000000000001
|
||||||
|
|
||||||
#define G_PMOD_MODE_MASK 0b00000001
|
#define G_PMOD_MODE_MASK 0b00000001
|
||||||
#define G_PMOD_PMOVE_MASK 0b00000010
|
#define G_PMOD_PMOVE_MASK 0b00000010
|
||||||
#define G_POMD_POS_MASK 0b00011100
|
#define G_POMD_POS_MASK 0b00011100
|
||||||
#define G_POMD_POS_BOFF 2
|
#define G_POMD_POS_BOFF 2
|
||||||
#define G_POMD_POS_BLEN 3
|
|
||||||
#define G_PMOD_PBLINK_MASK 0b00100000
|
#define G_PMOD_PBLINK_MASK 0b00100000
|
||||||
#define G_PMOD_PBLINK2_MASK 0b01000000
|
#define G_PMOD_PBLINK2_MASK 0b01000000
|
||||||
|
|
||||||
|
#define bit_set(x, mask) (x = x | mask)
|
||||||
|
#define bit_clear(x, mask) (x = x & (~mask))
|
||||||
|
#define bit_replace(x, v, voff, mask) ((x = x & (~mask)), (x = x | ((v << voff) & mask)))
|
||||||
|
#define bit_fetch(x, voff, mask) ((x & mask) >> voff)
|
||||||
|
|
||||||
typedef struct GlobalData {
|
typedef struct GlobalData {
|
||||||
/** FM x50kHz AM x1kHz */
|
/** FM x50kHz AM x1kHz */
|
||||||
|
/** 各种flag
|
||||||
|
* bit 0 signal改变flag
|
||||||
|
*/
|
||||||
|
uint16_t flag;
|
||||||
uint16_t freq;
|
uint16_t freq;
|
||||||
uint8_t rf_mode;
|
uint8_t rf_mode;
|
||||||
uint8_t volumn;
|
uint8_t volumn;
|
||||||
@ -29,7 +39,7 @@ typedef struct GlobalData {
|
|||||||
* bit 5 标记了当前时间段指针指示是否要显示(用于闪烁动画)
|
* bit 5 标记了当前时间段指针指示是否要显示(用于闪烁动画)
|
||||||
* bit 6 标记了当前指针的状态(用于闪烁动画)
|
* bit 6 标记了当前指针的状态(用于闪烁动画)
|
||||||
*/
|
*/
|
||||||
volatile uint8_t point_mode;
|
uint8_t point_mode;
|
||||||
} GlobalData;
|
} GlobalData;
|
||||||
|
|
||||||
extern GlobalData global_data;
|
extern GlobalData global_data;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user