Trigger with beep

pwm
erikkaashoek 3 years ago
parent 7ea9d1ec99
commit d291f63b25

@ -89,6 +89,7 @@
#endif #endif
#ifdef TINYSA4 #ifdef TINYSA4
#define __GUARD__ #define __GUARD__
#define __BEEP__
#define __MCU_CLOCK_SHIFT__ #define __MCU_CLOCK_SHIFT__
#define __ULTRA__ #define __ULTRA__
#define __USE_RTC__ // Enable RTC clock #define __USE_RTC__ // Enable RTC clock
@ -1195,6 +1196,9 @@ typedef struct setting
uint8_t trigger; // enum uint8_t trigger; // enum
uint8_t trigger_mode; // enum uint8_t trigger_mode; // enum
uint8_t trigger_direction; // enum uint8_t trigger_direction; // enum
#ifdef __BEEP__
uint8_t trigger_beep;
#endif
uint8_t step_delay_mode; // enum uint8_t step_delay_mode; // enum
uint8_t waterfall; // enum uint8_t waterfall; // enum
#ifdef __LEVEL_METER__ #ifdef __LEVEL_METER__
@ -1767,7 +1771,7 @@ enum {
#define MEASUREMENT_TEXT "OFF","IMD","OIP3","PN","SNR","PASS","LIN","AM","FM","THD","CP","NF T","NF S","NF V","NF A","GUARD","DECONF" #define MEASUREMENT_TEXT "OFF","IMD","OIP3","PN","SNR","PASS","LIN","AM","FM","THD","CP","NF T","NF S","NF V","NF A","GUARD","DECONF"
enum { enum {
T_AUTO, T_NORMAL, T_SINGLE, T_DONE, T_UP, T_DOWN, T_MODE, T_PRE, T_POST, T_MID T_AUTO, T_NORMAL, T_SINGLE, T_DONE, T_UP, T_DOWN, T_MODE, T_PRE, T_POST, T_MID, T_BEEP,
}; };
//!!! Warning can show not correct results on CH_CFG_ST_FREQUENCY not round by 1000 or > 1000000UL //!!! Warning can show not correct results on CH_CFG_ST_FREQUENCY not round by 1000 or > 1000000UL

@ -4906,7 +4906,13 @@ static bool sweep(bool break_on_operation)
set_audio_mode(A_DAC); set_audio_mode(A_DAC);
} }
#endif #endif
#ifdef __BEEP__
if (setting.trigger_beep && setting.trigger != T_AUTO) {
set_audio_mode(A_PWM); pwm_stop();
}
else
set_audio_mode(A_DAC);
#endif
setting.measure_sweep_time_us = 0; // start measure sweep time setting.measure_sweep_time_us = 0; // start measure sweep time
// start_of_sweep_timestamp = chVTGetSystemTimeX(); // Will be set in perform // start_of_sweep_timestamp = chVTGetSystemTimeX(); // Will be set in perform
@ -5239,6 +5245,13 @@ static volatile int dummy;
if (setting.measurement == M_GUARD && RSSI > setting.guards[current_guard].level) { if (setting.measurement == M_GUARD && RSSI > setting.guards[current_guard].level) {
pwm_start(4000); pwm_start(4000);
} }
#endif
#ifdef __BEEP__
if (setting.trigger != T_AUTO && setting.frequency_step > 0) { // Trigger active
if (setting.trigger_beep && RSSI >= setting.trigger_level) {
pwm_start(4000);
}
}
#endif #endif
for (int t=0; t<TRACES_MAX;t++) { // Calculate all traces for (int t=0; t<TRACES_MAX;t++) { // Calculate all traces
if (setting.stored[t]) if (setting.stored[t])

13
ui.c

@ -3429,6 +3429,10 @@ static UI_FUNCTION_ADV_CALLBACK(menu_trigger_acb)
b->param_1.text = mode_text[setting.trigger_mode - T_PRE]; b->param_1.text = mode_text[setting.trigger_mode - T_PRE];
} else if (data == T_UP || data == T_DOWN) } else if (data == T_UP || data == T_DOWN)
b->icon = setting.trigger_direction == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP; b->icon = setting.trigger_direction == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP;
#ifdef __BEEP__
else if (data == T_BEEP)
b->icon = setting.trigger_beep ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
#endif
else else
b->icon = setting.trigger == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP; b->icon = setting.trigger == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP;
return; return;
@ -3438,6 +3442,10 @@ static UI_FUNCTION_ADV_CALLBACK(menu_trigger_acb)
if (setting.trigger_mode > T_MID) if (setting.trigger_mode > T_MID)
setting.trigger_mode = T_PRE; setting.trigger_mode = T_PRE;
set_trigger(setting.trigger_mode); set_trigger(setting.trigger_mode);
#ifdef __BEEP__
} else if (data == T_BEEP) {
setting.trigger_beep = !setting.trigger_beep;
#endif
} else if (data != T_DONE) { } else if (data != T_DONE) {
set_trigger(data); set_trigger(data);
// menu_move_back(false); // menu_move_back(false);
@ -4720,8 +4728,11 @@ static const menuitem_t menu_trigger[] = {
{ MT_KEYPAD, KM_TRIGGER, "TRIGGER LEV\n\b%s", NULL}, { MT_KEYPAD, KM_TRIGGER, "TRIGGER LEV\n\b%s", NULL},
{ MT_ADV_CALLBACK, T_UP, "UP\nEDGE", menu_trigger_acb}, { MT_ADV_CALLBACK, T_UP, "UP\nEDGE", menu_trigger_acb},
{ MT_ADV_CALLBACK, T_DOWN, "DOWN\nEDGE", menu_trigger_acb}, { MT_ADV_CALLBACK, T_DOWN, "DOWN\nEDGE", menu_trigger_acb},
{ MT_ADV_CALLBACK, T_MODE, "%s\nTRIGGER", menu_trigger_acb}, { MT_ADV_CALLBACK, T_MODE, "TRIGGER\n\b%s", menu_trigger_acb},
{ MT_KEYPAD, KM_TRIGGER_GRID, "INTERVAL\n\b%ss", NULL}, { MT_KEYPAD, KM_TRIGGER_GRID, "INTERVAL\n\b%ss", NULL},
#ifdef __BEEP__
{ MT_ADV_CALLBACK, T_BEEP, "BEEP", menu_trigger_acb},
#endif
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back { MT_NONE, 0, NULL, menu_back} // next-> menu_back
}; };

Loading…
Cancel
Save

Powered by TurnKey Linux.