Если вопросов нет, я продолжу :-).
Поговорим о структуре записей в еепром. Она достаточно простая - шесть 4-х байтных переменных, далее четыре сообщения, на каждое из которых отведено по 100 байт.
Порядок следования такой.
1. Переменная fSAMPLE - частота опорного генератора на плате синтезатора, она же - частота выборок. Частота задается до сотых долей герца, десятичная запятая опускается. Например, у моего опорного генератора частота 24999454,00 Гц, соответственно fSAMPLE = 2499945400 или в шестнадцатиричном виде 0x950223B8. Побайтно запись частоты выглядит так 0x95, 0x02, 0x23, 0xB8. Первый байт является старшим. [Перевести из десятички в хекс можно с помощью калькулятора виндоуз.]
2. Переменная fOUT1 - первая выходная частота. Используется во всех режимах. Например, необходима выходная частота 137500,00 Гц. В шестнадцатиричном виде - 0х00D1CEF0 или, побайтно, 0x00, 0xD1, 0xCE, 0xF0. Подобная точность кажется излишеством, однако при расчёте кода приращения фазы или, по-простому, кода частоты, точность вычисления кода максимальна. К тому же программа делает округление кода.
3. Переменная fOUT2 - вторая выходная частота. Используется в режиме DFCW. Структура переменной аналогична двум первым. Ответственность за разность частот fOUT2-fOUT1 переложил на плечи потребителя. Пусть ставит 1 Гц или 0.1 Гц или ещё что-нибудь. Для проверки ставил fOUT1=137500,00 Гц, а fOUT2=1000000,00 Гц - работало, как часы.
4. Переменная TAU0 - длительность элементарной посылки в микросекундах. Используется в режимах QRSS, DFCW и BPSK. Например, в QRSS это длительность точки. Например, нужна скорость 50 знаков в минуту, т.е. 120 мс на тире. 120 мс = 120000 мкс = 0x0001В4С0, в таком порядке и записывается.
5. Переменная T0D3 - длительность временного зазора между элементами знака в мкС. Используется в режиме DFCW. RA3TTS посоветовал взять треть TAU0, т.е. TAU0/3, отсюда название T0D3. Совету внял, но переложил ответственность за длительность T0D3 на пользователя, ему виднее.
6. Переменная PAUSE - длительность паузы между сообщениями в мкс.
[Отмечу в скобках, хотя временные переменные можно задавать от 1 до 2^32-1, но менее 10 мкс выставлять задержку не вижу смысла - длительность одного периода 137 кГц составляет 7.3 мкс. Опять же - ответственность за выбор ложится на потребителя.]
7. Сообщение может быть в пределах 100 байт, включая 0x00 на последнем месте. Сообщение может включать в себя 26 прописных букв английского алфавита A-Z, десять арабских цифр 0-9 и пробел в кодировке ASCII.
Сигнал fOUT1 в разных частях сообщения в режимах QRSS и BPSK является синхронным, таким образом существует возможность когерентного приёма.
Приведу пример программного кода в еепром.
.eseg
.org 0x000
frqs: .db 0x95,0x02,0x23,0xB8 ;fS=24999454.00 Hz
frq1: .db 0x00,0xD1,0xCE,0xF0 ;fOUT1=137500.00 Hz
frq2: .db 0x00,0xD1,0xCE,0xF1 ;fOUT2=137501.00 Hz
tau0: .db 0x00,0x01,0xD4,0xC0 ;in us units
t0d3: .db 0x00,0x00,0x9C,0x40 ;in us units
pause: .db 0x00,0x07,0xA1,0x20 ;in us units
msg0: .db "THE CHASM GAPED BEFORE HIM",0
.exit
С ним нам предстоит немного поработать.
[подправил в своих сообщениях отдельные досадные неточности]