Only delay when setting input gain when doing auto-adjust.

fsk9600
Rob Riggs 2018-11-14 17:10:36 -06:00
rodzic c75b20e9c1
commit bbf3001853
2 zmienionych plików z 18 dodań i 6 usunięć

Wyświetl plik

@ -79,8 +79,6 @@ void set_input_gain(int level)
CxxErrorHandler();
if (HAL_OPAMP_Start(&hopamp1)!= HAL_OK)
CxxErrorHandler();
osDelay(100); // Need time for DC offset to settle.
}
int adjust_input_gain() __attribute__((noinline));
@ -93,6 +91,8 @@ int adjust_input_gain() {
uint16_t vpp, vavg, vmin, vmax;
set_input_gain(gain);
osDelay(100); // Need time for DC offset to settle.
std::tie(vpp, vavg, vmin, vmax) = readLevels(AUDIO_IN);
INFO("\nVpp = %" PRIu16 ", Vavg = %" PRIu16 "\n", vpp, vavg);
INFO("\nVmin = %" PRIu16 ", Vmax = %" PRIu16 ", setting = %d\n", vmin, vmax, gain);
@ -114,6 +114,8 @@ int adjust_input_gain() {
else gain = 0;
set_input_gain(gain);
osDelay(100); // Need time for DC offset to settle.
std::tie(vpp, vavg, vmin, vmax) = readLevels(AUDIO_IN);
INFO("\nVpp = %" PRIu16 ", Vavg = %" PRIu16 "\n", vpp, vavg);
INFO("\nVmin = %" PRIu16 ", Vmax = %" PRIu16 ", setting = %d\n", vmin, vmax, gain);

Wyświetl plik

@ -231,6 +231,7 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
osMessagePut(audioInputQueueHandle, audio::DEMODULATOR,
osWaitForever);
break;
case hardware::SET_OUTPUT_GAIN:
output_gain = *it << 8;
++it;
@ -240,7 +241,7 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
update_crc();
[[fallthrough]];
case hardware::GET_OUTPUT_GAIN:
DEBUG("GET_OUTPUT_VOLUME");
DEBUG("GET_OUTPUT_GAIN");
reply16(hardware::GET_OUTPUT_GAIN, output_gain);
break;
@ -280,13 +281,13 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
DEBUG("SET_VERBOSITY");
log_level = *it ? Log::Level::debug : Log::Level::warn;
Log().setLevel(*it ? Log::Level::debug : Log::Level::warn);
update_crc();
[[fallthrough]];
case hardware::GET_VERBOSITY:
DEBUG("GET_VERBOSITY");
reply8(hardware::GET_VERBOSITY, log_level == Log::Level::debug);
break;
#if 0
#if 0
case hardware::SET_LOWPASS_FREQ:
lowpass_freq = (*it++ << 8);
lowpass_freq = *it;
@ -296,6 +297,7 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
reply16(hardware::GET_LOWPASS_FREQ, lowpass_freq);
break;
#endif
case hardware::SET_INPUT_GAIN:
input_gain = *it << 8;
++it;
@ -311,6 +313,7 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
DEBUG("GET_INPUT_GAIN");
reply16(hardware::GET_INPUT_GAIN, input_gain);
break;
case hardware::SET_INPUT_TWIST:
DEBUG("SET_INPUT_TWIST");
rx_twist = *it;
@ -348,18 +351,22 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
DEBUG("GET_TXDELAY");
reply8(hardware::GET_TXDELAY, txdelay);
break;
case hardware::GET_PERSIST:
DEBUG("GET_PERSIST");
reply8(hardware::GET_PERSIST, ppersist);
break;
case hardware::GET_TIMESLOT:
DEBUG("GET_TIMESLOT");
reply8(hardware::GET_TIMESLOT, slot);
break;
case hardware::GET_TXTAIL:
DEBUG("GET_TXTAIL");
reply8(hardware::GET_TXTAIL, txtail);
break;
case hardware::GET_DUPLEX:
DEBUG("GET_DUPLEX");
reply8(hardware::GET_DUPLEX, duplex);
@ -370,11 +377,13 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
reply(hardware::GET_FIRMWARE_VERSION, (uint8_t*) FIRMWARE_VERSION,
sizeof(FIRMWARE_VERSION) - 1);
break;
case hardware::GET_HARDWARE_VERSION:
DEBUG("GET_HARDWARE_VERSION");
reply(hardware::GET_HARDWARE_VERSION, (uint8_t*) HARDWARE_VERSION,
sizeof(HARDWARE_VERSION) - 1);
break;
case hardware::GET_SERIAL_NUMBER:
DEBUG("GET_SERIAL_NUMBER");
reply(hardware::GET_SERIAL_NUMBER, (uint8_t*) serial_number_64,
@ -481,11 +490,12 @@ void Hardware::handle_request(hdlc::IoFrame* frame) {
reply8(hardware::GET_MIN_INPUT_TWIST, -3);
reply8(hardware::GET_MAX_INPUT_TWIST, 9);
reply(hardware::GET_DATETIME, get_rtc_datetime(), 7);
break;
case hardware::EXTENDED_CMD:
handle_ext_request(frame);
break;
default:
ERROR("Unknown hardware request");
}