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

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

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

Владимир_К
Сообщений: 1245
10 января 2025 г. в 12:12#436
Сегодня откорректирую, сейчас не дома..
Владимир_К
Сообщений: 1245
10 января 2025 г. в 01:14#437
Итак, файл main.c
Найдите строки:
// ++++ функция инициализации МК ++++
void initialization(void)

{
PORTB=0xE7;
DDRB=0x00;
PORTC=0x3E;
DDRC=0x00;
PORTD=0x7C;
DDRD=0x80;

Исправьте следующим образом:
PORTB=0x00;
DDRB=0xE7;
PORTC=0x80;
DDRC=0x0E;
PORTD=0x00;
DDRD=0x7C;
Как видно из текста строки DDR и PORT перепутаны местами. Кто это так пошутил, не знаю...
Сейчас вывод порта PORTC7 включен на вход. То есть к нему подключаете кнопку, второй ее конец на землю. И на этот же вывод подаете плюс питания через резистор 10 ком. Этот порт подтянут к питанию внутренним резистором процессора, для этого PORTC=0x80, то есть седьмой бит установлен в единицу. Но внутренней подтяжки иногда не хватает (а может китайцы там начудили, если процессор от них). Все кнопки без фиксации.
Для переключения RX/TX кнопку надо нажать и удерживать, после отпускания, включается прием.
В этом же файле найдите строку (почти в самом низу):
if (bit_is_clear(PIND, 6)) tx(); //Измените ее вот так:
if (bit_is_clear(PINC, 7)) tx();

Не забудьте перенести в этот исходник откорректированную строку знакогенератора из файла ldc.c исходника тестовой программы. Откомпилируйте. Ну как обычно...
ZTM
Сообщений: 362
10 января 2025 г. в 03:35#438
Сейчас вывод порта PORTC7 включен на вход. То есть к нему подключаете кнопку, второй ее конец на землю.
Это который PC6 или PC0? И,соответственно,при включенном RIT при замыкании ноги на землю,RIT должен отключиться?


Владимир_К
Сообщений: 1245
10 января 2025 г. в 04:09#439
А где ADC7?. Подозреваю, что у Вас процессор не с 32 выводами, т.е. в другом корпусе.
Надо уточнить, атмега бывает в трёх разл. корпусах. Например в ДИП корпусе 28 выводов, и портов PORTC6 и 7 у нее нет.
Если на приеме включен режим RIT, то частоту можно установить любую, даже за пределами диапазона. При переходе на передачу, установится частота, которая была до включения режима RIT.
Так пожелал товарищ, которому отдал трансивер. Порядок управления в этих режимах, можно сделать любым. За
ZTM
Сообщений: 362
10 января 2025 г. в 04:26#440
А где ADC7?. Подозреваю, что у Вас процессор не с 32 выводами, т.е. в другом корпусе.
Все верно,у меня атмега 328 в DIP28.Вы говорили,что S-метр выкинули из программы.То есть освобождаются выводы PC1 PC2 PC3.Может быть на какой-то из них повесить PTT?
ZTM
Сообщений: 362
10 января 2025 г. в 04:28#441
Если на приеме включен режим RIT, то частоту можно установить любую, даже за пределами диапазона. При переходе на передачу, установится частота, которая была до включения режима RIT.
Отлично
ZTM
Сообщений: 362
10 января 2025 г. в 04:54#442
Для переключения RX/TX кнопку надо нажать и удерживать, после отпускания, включается прием.
В этом же файле найдите строку (почти в самом низу):
if (bit_is_clear(PIND, 6)) tx(); //Измените ее вот так:
if (bit_is_clear(PINC, 7)) tx();
Это нужно сделать в ****** Основная программа ********* или в ********* Передача ********* ?
Владимир_К
Сообщений: 1245
10 января 2025 г. в 05:47#443
Все верно,у меня атмега 328 в DIP28
Понятно.
То есть освобождаются выводы PC1 PC2 PC3.
Можете использовать любой на свой выбор.
Вот эта строка, которая управляет кнопкой:
if (bit_is_clear(PINC, 7)) tx();

Здесь кнопка на выводе порта С, седьмой вывод. Смотря как удобнее на плате, можете вместо семерки написать 1,2 или 3. Кстати, тут я ошибся, судя по даташиту вывод ADC7 не является портом. Зная, что ADC1 и прочие до ADC5 могут быть как входами преобразователя, так и портами, я это применил и к ADC6, 7, а это не так.

Это нужно сделать в ****** Основная программа ********* или в ********* Передача ********* ?
Это нужно сделать везде. И в основной программе и в функции передача.
if (bit_is_clear(PINС, 7)) tx(); Это строка в основном модуле программы. Переписываете ее так:
if (bit_is_clear(PINС, 1)) tx(); //Как выше написал, вместо единицы можно также 2 или 3.

Строку из функции передача, надо откорректировать вот так:
while (bit_is_clear(PINС, 1)); // Кнопка нажата - продолжаем передачу
ZTM
Сообщений: 362
10 января 2025 г. в 06:21#444
Это нужно сделать везде. И в основной программе и в функции передача.
if (bit_is_clear(PINС, 7)) tx(); Это строка в основном модуле программы. Переписываете ее так:
if (bit_is_clear(PINС, 1)) tx(); //Как выше написал, вместо единицы можно также 2 или 3.

Строку из функции передача, надо откорректировать вот так:
while (bit_is_clear(PINС, 1)); // Кнопка нажата - продолжаем передачу
Понял.Благодарю Вас,Владимир! Отпишусь позднее о результатах,как впаяю кнопку и скомпилирую hex
Владимир_К
Сообщений: 1245
10 января 2025 г. в 06:56#445
Отладку я делаю последовательно. Сначала я бы подключил индикатор, затем валкодер. При этом, валкодером должна изменяться частота. Потом переключатель диапазонов. И так далее. Правда есть одна проблема, без Si5351A программа, скорее всего, работать не будет. При обращении к Si5351A, процессор ждет ответа от чипа и, если ответа нет, программа "виснет". Если такое происходит (если у Вас пока не подключена Si), то надо блокировать обращение к чипу.
Владимир_К
Сообщений: 1245
14 января 2025 г. в 11:58#446
if (bit_is_clear(PINС, 1)) tx(); //Как выше написал, вместо единицы можно также 2 или 3.
Строку из функции передача, надо откорректировать вот так:
while (bit_is_clear(PINС, 1)); // Кнопка нажата - продолжаем передачу
После внесения предложенных мной изменений, проект не компилируется. Причина - в этих строках буква C - русская (написана в русской раскладке клавиатуры). Исправьте, переключив клавиатуру на английский.
Сегодня писал для одного проекта, взял этот фрагмент и обнаружил ошибку..
ZTM
Сообщений: 362
15 января 2025 г. в 05:47#447
После внесения предложенных мной изменений, проект не компилируется. Причина - в этих строках буква C - русская
А я сразу все проверил .У меня все нормально собралось .В выходной плотно посижу с этим проектом.
ZTM
Сообщений: 362
21 января 2025 г. в 11:17#448
После внесения правок имеется следующая картина включения контроллера с валкодером и SI.Нет разделительных точек на индикаторе(в тестовой программе индикатора они есть и на своих местах),нет реакции на валкод(на другом синтезаторе откликается).Проект собрался без ошибок.

Владимир_К
Сообщений: 1245
22 января 2025 г. в 04:41#449
Цитата: ZTM
Нет разделительных точек на индикаторе(в тестовой программе индикатора они есть и на своих местах)

Сбросьте исходник тестовой программы, сравню где расхождение.. Сначала разберемся с точками, потом с валкодером. Файл схемы я открыть не могу, он у Вас как видно по расширению, -Сплан-8. У меня седьмая версия и новую не хотелось бы ставить, я ими (в т.ч. Layout) давно не пользуюсь. В основном Диптрейс. Или сбросьте схему в седьмом или экспортируйте в другой формат.
ZTM
Сообщений: 362
22 января 2025 г. в 07:41#450
Цитата: Владимир_К
Сбросьте исходник тестовой программы, сравню где расхождение..

Вот Схема тут же,в архиве