Форум Радиолюбителей

Опорник от Владимир_К

415285 просмотров, 466 ответов — стр. 22 из 32

18 мая 2021 г. в 08:57#316
Вот тут, как понимаю, можно задавать состояния регистров?


Владимир_К
Сообщений: 1245
18 мая 2021 г. в 10:44#317
можно задавать состояния регистров?
Да. Только делать это надо открыв проект. Запустите AVR Studio 4.19. В меню нажмите Progekt - Open Progekt. Укажите путь к папке. Жмите на файл с расширением .aps. Он со значком божьей коровки . Откроется проект. Слева в окошке увидите перечень файлов проекта - Source Files, Header Files и пр. Нажмите на крестик, откроются файлы соответствующие. Нажмите на имя файла, он откроется в главном окне.
После внесения изменений надо проект компилировать. В меню Build - Clean - Rebuild All. После компилирования внизу появится сообщение, если с красной точкой Error, значит что-то сделали не так. Также могут появиться предупреждения, это не ошибка, но желательно без них.
После компилирования в папке проекта Default найдете обновленный НЕХ-файл. Главный файл проекта main.c. В нем находится главная функция int main (void).
Таблица, которую Вы показали, содержит содержание регистров. При работе программы в регистры выводится строка соответствующая диапазону (во, пока писал, нашел ошибку) в таблице. Попробуйте сами ее увидеть . Подскажу немного. Внизу, последние 4 строчки - там кроме включения соответствующего ДПФ, также включаются ГУНы. А в предыдущих строчках их нет. Цифра, стоящая справа (то есть младший бит байта) идет первой, то есть она загоняется в конец регистра.
После компиляции нажмите Save Progect. При запуске Studio в следующий раз проект откроется. Но для этого надо зайти в настройки и указать там, чтобы при запуске студии открывался последний проект. В общем, думаю, разберетесь.
18 мая 2021 г. в 10:54#318
Спасибо за раскрытый до мелочей ответ.

Владимир_К
Сообщений: 1245
18 мая 2021 г. в 10:58#319
раскрытый до мелочей
Это можно подробно тут прочитать: http://easyelectronics.ru/avr-uchebnyj-kurs-programmirovanie-na-si-chast-1.html
Судя по картинке, что Вы выложили (подсвеченный шрифт) Вы проект уже и сами открыли и мои пространные опусы, лишние .
18 мая 2021 г. в 11:00#320
Судя по картинке, что Вы выложили (подсвеченный шрифт) Вы проект уже и сами открыли.

Да, это через редактор. Попробовал скомпилировать, всё получилось.

Ещё такой вопрос, если у меня будет задача уменьшать кол-во диапазонов, то что редактировать? Я как понимаю там удаление лишних столбцов в начале, где прописываются границы и стартовые частоты и удаление строг регистров не обойтись.
Владимир_К
Сообщений: 1245
18 мая 2021 г. в 11:19#321
/************ Частотный план трансивера *******************/

unsigned long freq_max[13]={2000000, 3800000, 7200000, 10150000, 14350000, 18168000, 21450000, 24990000, 30000000, 30000000, 30000000, 30000000};
unsigned long freq_min[13]={1810000, 3500000, 7000000, 10100000, 14000000, 18068000, 21000000, 24890000, 26000000, 26000000, 26000000, 26000000};
unsigned long frequency_1[13]={1810000, 3500000, 7000000, 10100000, 14000000, 18068000, 21000000, 24890000, 26000000, 26000000, 26000000, 26000000};

Найдите эту таблицу. Вот я подсветил числа, относящиеся в диапазону 0. Удалив эти цифры, Вы исключите этот диапазон. Но, теперь нулевой диапазон уже будет не 160 метров, а 80 метров.
Число в квадратных скобках должно быть на 1 больше, чем диапазонов в таблице.
В программе надо найти еще места, где надо внести изменения. Во-первых убрать строки из таблицы, которую Вы выложили.
Во-вторых, вот здесь:
if (l==7)
{
_band=_band+1;
if (_band>11)
_band=0;
}

if (l==6)
{
_band=_band-1;
if (_band==0xFFFF)
_band=11;
При каждом нажатии кнопки переключения диапазона, номер диапазона увеличивается на 1. Тут есть условие if (_band>11) _band=0. То есть, при достижении максимального номера, идет перескок в начало.
А ниже строки, если достигли нулевого диапазона, переходим на последний.
Дальше, вот тут:
//if (_band<4) y_1=y_1+pch;
// else y_1 = y_1-pch;
y_1 = y_1+pch;
В зависимости от номера диапазона, ПЧ прибавляется или наоборот вычитается. Здесь условие закомментировано двумя //, то есть эти строки компилятор игнорирует (чаще делайте так, не убирайте строку, а просто закомментируйте ее, потом легче вернуть), и здесь ПЧ всегда прибавляется (последняя строка).
Обращайте внимание на всякие скобки, запятые и пр. Тут их никак нельзя игнорировать. Каждая запятая или скобка несет определенный смысл.
18 мая 2021 г. в 11:24#322
Ок. Понял. Буду вникать.
18 мая 2021 г. в 09:24#323
Подцепил макет синтеза с прошивкой от Владимир_К адаптированную под AD9850 к приемнику.
https://youtu.be/3Yz4_tmKHJA
Игорь 2
Сообщений: 21288
18 мая 2021 г. в 09:37#324
Чистый эфир...
ra0ahcra0ahc
Сообщений: 4868
18 мая 2021 г. в 11:08#325
Прикольно. А без антенны как? Свистулек много ?
19 мая 2021 г. в 07:36#326
Свистулек много да.
Владимир_К
Сообщений: 1245
19 мая 2021 г. в 10:51#327
Свистулек много
Собирайте ГУНы. Программу доработаю. Также в планах под индикатор на МАХ7221. И варианты на AD9850 и Si5351A.
19 мая 2021 г. в 10:52#328
Комплектующие едут
Владимир_К
Сообщений: 1245
19 мая 2021 г. в 12:41#329
На диапазонах, где частота меньше 10 мгц, слева нуль незначащий. Его можно убрать.
В программе найдите строки:
send_l(led);
led=(Numbers[(int)N1]);

Замените так:

send_l(led);
if (N1!=0)
led=(Numbers[(int)N1]);
else
led=0b00000000;
19 мая 2021 г. в 12:45#330
ок