Problem jest już rozwiązany. W załączeniu nowy kod z poprawką.
Opiszę dlaczego przy pracy na CW metodą mieszania częstotliwości nie było shift dla TX CW.
Program ma możliwość ustawienia w kodzie txshiftcw, jako odskok częstotliwości VFO by można było zrealizować shift nadajnika.
W linii ifshiftcw ustawia się częstotliwość BFO dla CW, a w linii txshiftcw odskok VFO przy nadawaniu przez podanie częstotliwości środkowej filtru IF (shift jako różnicę tych dwóch częstotliwości).
Problem był taki, że ten sam odskok jednocześnie realizowało VFO jak i BFO, co w efekcie niwelowało shift. Był błąd w kodzie.
Ja pracuję w wersji CW direct, bez mieszania częstotliwości dla nośnej CW, więc nie wpadłem w tą pułapkę, bo przy wpisaniu w txshiftcw wartości 0, nośna CW była na właściwej częstotliwości nadawania, jako częstotliwość generowana pinout VFO.
Błąd został poprawiony i obecnie shift CW działa w wersji mieszania częstotliwości.
Na żółto zaznaczyłem linie w kodzie odpowiadające za CW,...
W mojej wersji filtr 500Hz dla CW ma środkową częstotliwość 9 MHz, a BFO na zdjęciu jest ustawione 800Hz niżej. Jeśli używamy PP9 SSB jako filtr CW, to musimy odpowiednio dobrać częstotliwość BFO i shift, bo nie będzie to w środku PP9.. filtr do SSB jest za szeroki.
Natomiast ta część kodu nie ma żadnego znaczenia i nie bierze udziału w żadnych funkcjach programu, nie wiadomo kto te linie wprowadził i w jakim celu.
Kod jest otwarty, wiele osób dokonywało w nim zmian, w efekcie ktoś prawdopodobnie zmieniając funkcje w programie doprowadził do powyższej sytuacji.
Oczywiście by to funkcjonowało musi być ustawiona modulacja CW i nadawanie realizuje się PTT, kluczowanie według własnych pomysłów, w nadajniku czy przez rozrównoważanie modulatora.
Jeśli ktoś przetestuje tą wersję kodu proszę o potwierdzenie czy wszystko ok.
Opis syntezy jest tu:
https://sp-hm.pl/thread-3468-page-2.html