Пытаюсь переписывать код под свои задачи, дело идет с переменным успехом. До переключения диапазонов пока не добрался, но привел настройки в порядок, объединил все в одном файле (мне так удобнее) config.h, занялся адаптацией работы синтезатора для трансивера. В нем, в трансивере, два преобразования частоты. Посему первый гетеродин будет на CLK0, он перестраиваемый, а второй гетеродин нужен был неперестраиваемый, на заданную частоту. Это было сделано так: в файле конфигурации добавлено произвольное значение переменной
Code: Select all
// Частота 2-го гетеродина фиксированная (SSBDetectorFreq_FA), в Гц:
#define SSBDetectorFreq_FA 8000000L
А в файле freq_calc.h изменена конструкция с определением для CLK1 с помощью этой переменной:
Code: Select all
vfo_set_freq(
#ifdef CWTX_DIRECT_FREQ
cwtx? 0:
#endif
CLK0_MULT*f,
cwtx? 0: CLK1_MULT*(SSBDetectorFreq_FA),
#ifdef CWTX_DIRECT_FREQ
cwtx? trx.Freq+(trx.sideband == LSB ? -Settings[ID_CW_TONE_HZ]: Settings[ID_CW_TONE_HZ]): 0
#else
cwtx? (SSBDetectorFreq_LSB+Settings[ID_LSB_SHIFT])-Settings[ID_CW_TONE_HZ]: 0
#endif
Вопрос вот в чем: хочу еще одну частоту, через еще одну переменную, на третью ножку синтезатора, CLK2. Как ее безболезненно дописать? Конструкции вида
Code: Select all
CLK0_MULT*f,
cwtx? 0: CLK1_MULT*(SSBDetectorFreq_FA),
cwtx? 0: CLK2_MULT*(SSBDetectorFreq_FB),
Code: Select all
cwtx? 0: (CLK1_MULT*(SSBDetectorFreq_FA) : CLK2_MULT*(SSBDetectorFreq_FB)),
не прокатывают. Программировать я не умею, как уже и писал выше, поэтому на местности теряюсь и не представляю себе, как оно тут работает. Ножка CLK2 ведь везде объявлена и сконфигурированиа, почему же не работает оно?