RK50.RU

Радиодетали Пушкино

Category: ПРОГРАММИРОВАНИЕ

Модернизация Icom IC-F211 с применением микрокнтроллера AVR

Published / by rk50.ru

Исходники программного обеспечения 5,7 Kb.


Все авторские права принадлежат Петрову Р.В, RK50.RU

Пример разработки программного обеспечения для AVR

Published / by rk50.ru

Пример разработки программного обеспечения для микроконтроллера AVR на языке Assembler.

Данная разработка используется для управления радиостанцией ICOM IC-F211 в режиме радиомаяка.
Алгоритм работы:

  • Инициализация микроконтроллера — 4 -х краное нажатие на кнопку передачи
  • Отсчет заданного интервала времени, в моем случае 15 минут, при этом происходит контроль нажатия кнопки передачи и наличия сигнала в радиоканале.
  • Если не одно событие за время отсчета не произошло, ир в радиоэфир передается тоновая посылка в формате Азбуки Морзе.
    Каждые 15 минут передается разная по содержанию тоновая посылка. Всего — 4-ре.
Модернизация радиостанции ICOM IC-F211, RK50.RU, Petrov Roman
Модернизация радиостанции ICOM IC-F211, RK50.RU
Модернизация радиостанции ICOM IC-F211, RK50.RU, Petrov Roman
Модернизация радиостанции ICOM IC-F211
Модернизация радиостанции ICOM IC-F211, RK50.RU, Petrov Roman
Модернизация радиостанции ICOM IC-F211
Модернизация радиостанции ICOM IC-F211, RK50.RU, Petrov Roman
Модернизация радиостанции ICOM IC-F211
Модернизация радиостанции ICOM IC-F211, RK50.RU, Petrov Roman
Модернизация радиостанции ICOM IC-F211

Исходный код рабочей программы.
;################################################################################
;# Программа разработана для ICOM IC-F211. Начало разработки 10 февраля 2015 года
;# Петров Роман rk50.ru
;#АЛГОРИТМ РАБОТЫ ПРОГРАММЫ
;#
;#
;# 1. ОЖИДАЕМ 4-x КРАТНОГО НАЖАТИЯ КНОПКИ ПЕРЕДАЧИ НА ТАНГЕНТЕ
;# 2. ЕСЛИ В ЭФИРЕ НЕТ СИГНАЛА И НЕ НАЖАТА КНОПКА ПЕРЕДАЧИ, ТО НАЧИНАЕТСЯ ОТСЧЕТ ВРЕМЕНИ
;# 3. ОТСЧИТАВ ЗАДАННЫЙ ИНТЕРВАЛ ВРЕМЕНИ (15 МИН), ПОДАЕМ ТОНОВУЮ ПОСЫЛКУ СООТВЕСТВУЮЩУЮ ДЛЯ ДАННОГО ИНТЕВАЛА ВРЕМЕНИ

;# PB0, PB1 -входы компаратора
;# PB1 (INT1 -)-используется для детектирования НЧ сигнала с динамической головки
;# PB2 (TOME) -используется для тоновой посылки
;# PB3 (TX_LED)- конфигурируется на вход и выход. Управление передачей и индикацией состояния. а так же отслеживание нажатия кнопки передачи
;#
;#
;################################################################################
.include «tn13def.inc»

;РЕГИСТРОВЫЕ ПЕРЕМЕННЫЕ
.def counter_ptt = R16; счетчик нажатий кнопки передачи на тангенте
.def time_ptt = R17; длительность нажатия и отпускания клавиши передачи на тангенте
.def time_period = R18; таймер периода
.def counter_prog =R19; счетчик подпрограмм исполняемых в определнный интервал времени
.def tmp_1 = R20; кнопка передачи и формирование ПАЗУЗ
.def tmp_2 = R21; для работы с портом B
.def tmp_3 = R22; для работы с кнопкой передачи, для формирования паузы в 60 сек (15 минут)
.def tmp_4 = R25; задержка 15 минут
.def tmp = R23; общий регистрж формирование пауз
.def tmpa = R24; для формирования пауз

;ОПРЕДЕЛЕНИЯ
.equ TX_LED = PB3; выход управления передачей.
.equ TONE = PB2; выход тона
.equ DET_BF = PB1; вход детектора стгнала НЧ
.equ DET_PTT = PB4 ; вход детектора нажатия клавиши передачи на тангенте
.equ COMP_IN = PB1 ; вход инверитирующего напряжения компаратора

.equ ptt = 3; количество нажатий на клавишу передачи на тангнете для активации микрокнтроллера
.equ ptt_pause = 4; длительность нажатия pause*ptt_pause=250ms*4=1S
.equ prog = 5; количество подпрограмм -тоновых посылок
.equ time_60 = 16; длительность периода = 1 мин.
.equ time_900 = 2; 5 -то длительность периода = 60 мин.
.equ time_250 = 136; константа для задержки в 250 мС
.equ time_100 = 109; константа для задержки в 100 мС
.equ wait_point = 47; задержка для формирования точки длительностью 44 мс и равной тоновой длительности точки
.equ wait_point_tone = 24 ; задержка для формирования тоновой точки
.equ t_1000 = 215 ; задержка 3S
.equ beep =16 ; тоновая посылка BEEP
.equ t_3000 = 16; задержка 3S

.cseg
.org 0

.org 0
ldi tmp, low(RAMEND)
out SPL, tmp

;выключение компаратора
ldi tmp, (1 < < ACD) out ACSR, tmp ldi tmp_1, 0b0100; PB0, PB1, PB3 -in PB2- -out out DDRB, tmp_1 ldi tmp_1, 0b00001100; out PORTB, tmp_1; поддтянуть резисторы к PB2, PB3 ldi tmp_3, prog ; ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА T0 clr tmp out TCCR0A, tmp ldi tmp,(1<Прошивка для микроконтроллера AVR 5.& Kb


Все авторские права принадлежат Петрову Р.В, RK50.RU

Компаратор AVR, пример работы с компаратором AVR

Published / by rk50.ru

Часть программы для компаратора:

next_1: ; ИНИЦИАЛИЗАЦИЯ КОМПАРАТОРА
sbi PORTB, TX_LED ; включить светодиод нажатия передачи
ldi tmp,(0<

Все авторские права принадлежат Петрову Р.В, RK50.RU

«Эхо-репитер» -последняя модернизация

Published / by rk50.ru

АЛГОРИТМ РАБОТЫ

Инициализация: тоновая посылка в формате Азбуки Морзе: «rk50.ru 79031423721 Petrov Roman»
Основной режим: Ожидание сигнала → Отсчет тайм-аута в 15 минут.
Если сигнал не появился, то через 15 минут тоновая посылка в формате Азбуки Морзе «слово 1», если эхо-репитер не используется, то по истечение 15 минут в эфир передернется следующее «слово 2» в формате Азбуки Морзе, потом «слово 3» и «слово 4».
Далее цикл начинается заново.

    Формат слов:

  • «info_1:» ТОН (79031423721 Petrov Roman) ТОН
  • «info_2:»ТОН ТОН (rk50.ru 79031423721) ТОН ТОН
  • «info_3:» ТОН ТОН ТОН (rk50.ru Petrov Roman)ТОН ТОН ТОН
  • «info_4:» ТОН ТОН ТОН ТОН (rk50.ru) ТОН ТОН ТОН ТОН

Длительность тоновой посылки составляет 111 мСек.

Если сигнал появился, то записываем, если запись превышает тайм-аут, то ограничиваем длительностью в 10.25 сек.
После окончания сигнала, воспроизводим с задержкой после подачи несущей в 500 мС.
Таким образом, гарантированно передаем начало первых букв в слове.

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ

Эхо-репитер, г. Пушкино, rk50.ru
Эхо-репитер, г. Пушкино, rk50.ru

Эхо-репитер, г. Пушкино, rk50.ru
Эхо-репитер, г. Пушкино, rk50.ru

Рабочие прошивки для микроконтроллера AVR ATTINY13A:

    Исходный код последней модификации программы для микроконтроллера AVR ATTINY13A:

    Программа полностью рабочая и отлажена 5 февраля 2015 года.
    ;########################################################
    ;# 25 января 2015 года
    ;# УПРАВЛЕНИЕ ЭХОРЕПИТЕРОМ
    ;# PB4-управление передачей TX
    ;# PB0 — тоновый выход TONE
    ;# PB2 -индикатор состояния LED
    ;# PB3 — вход детектора IN
    ;# АЛГОРИТМ РАБОТЫ:
    ;# 1.1ТОН 3 СЕК.-> ПАУЗА 3 СЕК -> ИНФОРМАЦИЯ 1 -> ТАЙАУТ 15 МИНУТ
    ;# 1.2 -> ТОН 3 СЕК. -> ПАУЗА 3 СЕК ТАЙМАУТ 15 МИНУТ
    ;# 1.3 ->ТОН 3 СЕК. -> -> ПАУЗА 3 СЕК -> ТАЙАУТ 15 МИНУТ
    ;# 1.4 ->ТОН 3СЕК -> ПАУЗА 3 СЕК -> ИНФОРМАЦИЯ 2 …
    ; Добавлены 3-ре тоновые посылки в формате Азбуки Морзе в период 15, 30, 45 и 60 мин — 24 февраля 2015 год.
    ; добавлена функция воспроизведения ранее записанной фрпазы после первого там-аута в минут.
    ; Оканчательно доработана с устранением всех ошибок.
    ;########################################################

    .include «tn13def.inc»
    .list

    .def tmp = r16;
    .def tmpa = r17;
    .def tmp_1 = r18; сотояние порта PORTB
    .def short = r19; регистр для формирования длинной задержки
    .def long = r20; регистр для осчета времени сторожевым таймером
    .def tmp_2 = r21; время запис ограниченное 10сек
    .def tmp_3 = r22;
    .def counter = r23;
    .def vtmp_2 = r24; время записи, используется для повоторного воспроизведения ранее записанной радиопосылки
    .equ tx = 4 ; PB0 TX
    .equ led = 2 ; PB1 LED
    .equ tone = 0 ; PB2 TONE
    .equ det = 3 ; PB3 IN — вход детектора
    .equ play_rec = 1; PB1 управление записью и чтением

    .equ t_1 = 255
    .equ t_2 = 3 ; задержка d1000 1 mS
    .equ t_3 = 12; задержка d3000 3S
    .equ t_30min = 16; 31 задержка длинная 30 минут
    .equ t_4 = 1 ; задержка 1 мС для формирования тона генератора
    .equ t_10s = 42 ; задержка 10.25 Сек T=(42-1)*0.25=10.25S
    .equ wait_point = 63; задержка для формирования точки +
    .equ wait_point_tone = 32 ; задержка для формирования тоновой точки
    .equ counter_info = 4 ; счетчик информации
    .cseg
    .org 0
    ldi tmp, low(RAMEND)
    out SPL, tmp
    ;########################################################
    ;# ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА
    ;########################################################

    ldi tmp, 0x05; коэффициент деления таймера-счетчика TCCR0 1024
    out TCCR0B, tmp; загрузить в регистр управления

    ;########################################################
    ;# ИНИЦИАЛИЗАЦИЯ МИКРОКОНТРОЛЛЕРВА
    ;########################################################

    ldi tmp, 0b0010111; PINB3- in, PINB0, PINB1, PINB2 -out
    out DDRB, tmp
    ldi tmp, 0xFF ; out PORTB
    out PORTB, tmp
    ldi counter, counter_info
    rcall d3000
    rcall d3000
    ;########################################################
    ;# ОСНОВНАЯ ПРОГРАММА
    ;########################################################

    start:
    ;#####################################################################
    ;# ИНИЦИАЛИЗАЦИЯ
    ;#####################################################################
    ;### Несущая 3 СЕК -> PAUSE 3S-> TONE 3S-> PAUSE 3S->INFO> PAUSE 3S-> TONE 3S-> ОТКЛЮЧЕНИЕ

    rjmp start_info; Тновая посылка в формате Азбуки Морзе RK50.RU Petrov Roman 79031423721
    end_end_info:
    ldi counter, counter_info
    end_info:

    ;######################################################################
    ;# Ветвление, отчет тай-аута при неиспользовании репитера
    ;######################################################################
    start_0:
    ldi long, t_30min; задание времени таймаута в 15 минут T=60*(16-1) = 900 S

    time_out_1:
    clr short
    dec long
    cpi long, 0
    breq start_counter_info; перейти на метку при равентсе time_long =0

    det3:; Один цикл =0.235С Полная задержка равна 60 секунд
    in tmp_1, PINB
    sbrs tmp_1, det; пропустить следующую команду, если det=1 -нет сигнала на входе тетектора
    rjmp write
    ;#######################################################################
    ; ФОРМИРОВАНИЕ ТАЙМ-АУТА в T=0.25*255 = 15 МИНУТ, ПО ИСТЕЧЕНИИ КОТОРОГО
    ;В ЭФИР ВЫДАЕТСЯ РАДИОПОСЫЛКА
    ;#######################################################################
    inc short
    cpi short, t_1; сравнить с t_1 (255)
    breq time_out_1; при равентсве перейти на метку Задержка 0.25*255 = 63,75С
    rcall d250ms
    rjmp det3

    start_counter_info:
    rjmp start_counter_info_0
    ;#########################################################################
    ; ПРОЦЕСС ЗАПИСИ И ВОСПРОИЗВЕДЕНИЯ СИГНАЛА С ОГРАНИЧЕНИЕМ ЗАПИСИ В 10.5 СЕКУНД
    ;
    ;#########################################################################
    write:
    clr tmp_2
    sbi PORTB, PLAY_REC; REC — начать запись
    write_1:
    rcall d250ms

    inc tmp_2
    cpi tmp_2, t_10s
    breq stop_write; при равенстве tmp=255 перейти на метку stop_write (T=0,218 *48 =10,5S )

    in tmp_1, PINB
    sbrs tmp_1, det ; пропустить если det = 1 — сигнал на входе пропал
    rjmp write_1 ; повторить цикл

    stop_write: ; конец записи
    ; Ждать пока не закончится сигнал
    det_1:
    in tmp_1, PINB
    sbrs tmp_1, det; пропустить если play_rec = 1 — сигнал на входе пропал
    rjmp det_1

    cbi PORTB, LED; горит светодиод
    cbi PORTB, TX; передача

    rcall d250ms; Пвуза для того, чтобы успел открытся шумоподавитель от CTCSS-сигнала
    rcall d250ms

    cbi PORTB, PLAY_REC; PLAY-начать воспроизведение ранее записанного файла

    ;#######################################################################
    ;# PLAY
    ;;#######################################################################
    play:
    rcall d250ms
    dec tmp_2
    cpi tmp_2, 0
    breq stop_play_end; при равентсве нулю tmp перейти на метку
    rjmp play
    stop_play_end:
    ; Пауза перед тоновой посылкой, т.е. концом передачи
    ldi tmp, 0x06
    pause_tone:
    dec tmp
    cpi tmp,0
    breq exit_pause
    rcall d250ms
    rjmp pause_tone
    exit_pause:
    rcall tone_3s ; тоновая посылка
    sbi PORTB, LED; не горит светодиод
    sbi PORTB, TX; передача закончена
    rjmp start_0

    ;######################################################
    ;# Пауза 3 секунды = 3000 мС
    ;# T=1MHz/1024=976,5 Hz 1,24 mS 1,024*256=261 mS
    ;# T=218 mS T=0.925 mS -1 цикл
    ;# Реальная T=1,45S
    ;######################################################
    d3000:
    push tmp
    ldi tmpa, t_3
    d3000_1:
    clr tmp
    out TCNT0, tmp

    dec tmpa
    cpi tmpa,0
    breq output
    wait_1:; 232 mS
    in tmp, TCNT0
    cpi tmp, t_1
    brlo wait_1
    rjmp d3000_1

    output:
    pop tmp
    ret

    ;################################################################
    ;# ЗАДЕРЖКА ДЛЯ ФОРМИРОВАНИЯ ТОНА T=2,34 mS F=500 Hz
    ;# ИСПОЛЬЗОВАНИЕ ТАЙМЕРА TCNT0
    ;# F=977Hz T=1,024 ms
    ;# Реальная задержка T=937 mkS

    ;################################################################

    d1000: ; ФОРМИРОВАНИЕ ЗАДЕРЖКИ в 1 МС F=1/(2T)=500 Hz для ГЕНЕРАТОРА
    push tmp
    clr tmp
    out TCNT0, tmp

    wait_2:
    in tmp, TCNT0
    cpi tmp, t_4
    brlo wait_2
    pop tmp
    ret

    ;################################################################
    ;# ЗАДЕРЖКА 250 мС
    ;################################################################

    d250ms: ; ФОРМИРОВАНИЕ ЗАДЕРЖКИ в 1 МС F=1/(2T)=500 Hz для ГЕНЕРАТОРА
    push tmp
    clr tmp
    out TCNT0, tmp

    wait_3: ; Итоговая задрежка в 1 мС
    in tmp, TCNT0
    cpi tmp, t_1; сравнить с числом t_1=255
    brlo wait_3
    pop tmp
    ret

    ;############################################################
    ;# ФОРМИРОВАНИЕ ТОНА 0,944 mS при t_2=7
    ;############################################################
    tone_3s:
    ldi tmpa, t_2; 3
    stop_1:
    dec tmpa
    cpi tmpa,0
    breq tone_stop
    ldi tmp_1, 0b111100 ; Было t_1; 255

    tone_start: ; Цикл выполняется за 0.472 Сек при tmp_1=255
    sbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    cbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    ;############################################################
    ;######## ОСЧЕТ 3 СЕКУНД ТОНОВОЙ ПОСЫЛКИ
    dec tmp_1
    cpi tmp_1, 0
    breq stop_1; при равенстве перейтина метку stop_1
    rjmp tone_start
    tone_stop:
    ret

    ;############################################################
    ;# ИНФОРМАЦИОННОЫЕ ПОСЫЛКИ В ПЕРИОД 15, 30, 45 и 60 минут
    ;############################################################

    start_counter_info_0:
    dec counter
    cpi counter, 3
    breq info_1
    cpi counter, 2
    breq info_2
    cpi counter, 1
    breq info_3
    cpi counter, 0
    breq info_4
    ;#############################################################
    ; ТОНОВЫЕ ПОСЫЛКИ : info_1: ТОН (79031423721 Petrov Roman) ТОН,
    ; info_2:ТОН ТОН (rk50.ru 79031423721) ТОН ТОН
    ; info_3: ТОН ТОН ТОН (rk50.ru Petrov Roman)ТОН ТОН ТОН
    ; info_4: ТОН ТОН ТОН ТОН (rk50.ru) ТОН ТОН ТОН ТОН
    ;#############################################################

    info_1: ; rk50.ru
    cbi PORTB, LED;
    cbi PORTB, TX ;
    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d3000; ПАУЗА 3 СЕК

    rcall word_2 ;79031423721
    rcall word_3; Petrov Roman

    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d3000; ПАУЗА 3 СЕК
    sbi PORTB, LED;
    sbi PORTB, TX ;
    rjmp end_info

    info_2:

    cbi PORTB, LED;
    cbi PORTB, TX ;
    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d3000; ПАУЗА 3 СЕК

    rcall word_1 ; rk50.ru
    rcall word_2 ;79031423721

    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d3000; ПАУЗА 3 СЕК
    sbi PORTB, LED;
    sbi PORTB, TX ;
    rjmp end_info

    info_3: ; rk50.ru Petrov Roman
    cbi PORTB, LED;
    cbi PORTB, TX ;
    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d250ms
    rcall tone_3s ; тоновая посылка 3
    rcall d3000; ПАУЗА 3 СЕК

    rcall word_1 ; rk50.ru
    rcall word_3 ; Petrov Roman

    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d250ms
    rcall tone_3s ; тоновая посылка 3
    rcall d3000; ПАУЗА 3 СЕК
    sbi PORTB, LED;
    sbi PORTB, TX ;
    rjmp end_info

    info_4:

    cbi PORTB, LED;
    cbi PORTB, TX ;
    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d250ms
    rcall tone_3s ; тоновая посылка 3
    rcall d250ms
    rcall tone_3s ; тоновая посылка 4

    rcall d3000; ПАУЗА 3 СЕК

    rcall word_1

    rcall d3000; ПАУЗА 3 СЕК
    rcall tone_3s ; тоновая посылка 1
    rcall d250ms
    rcall tone_3s ; тоновая посылка 2
    rcall d250ms
    rcall tone_3s ; тоновая посылка 3
    rcall d250ms
    rcall tone_3s ; тоновая посылка 4
    rcall d3000; ПАУЗА 3 СЕК

    sbi PORTB, LED;
    sbi PORTB, TX ;
    rjmp end_end_info

    start_info: ;rk50.ru 79031423721 Petrov Roman
    cbi PORTB, LED;
    cbi PORTB, TX ;
    rcall d3000; ПАУЗА 3 СЕК

    rcall word_1
    rcall word_2
    rcall word_3

    rcall d3000; ПАУЗА 3 СЕК
    sbi PORTB, LED; погасить светодиод
    sbi PORTB, TX ; выключение передачи

    rjmp end_info

    ;############################################################
    ;# ФОРМИРОВАНИЕ ТОНОВОЙ ИНФОРМАЦИОННОЙ ПОСЫЛКИ В ФОРМАТЕ АЗБУКИ МОРЗЕ
    ;############################################################

    ;############################################################
    ;# Тоновая посылка в формате Азбуки Морзе
    ;# RK50.RU PETROV ROMAN 79099119494 Первый пип и потерялся
    ;############################################################

    word_1:
    rcall symbol_R
    rcall symbol_K
    rcall symbol_5
    rcall symbol_0
    rcall symbol_point
    rcall symbol_R
    rcall symbol_U
    ret

    word_2:
    rcall pause_word
    rcall symbol_7
    rcall symbol_9
    rcall symbol_0
    rcall symbol_3
    rcall symbol_1
    rcall symbol_4
    rcall symbol_2
    rcall symbol_3
    rcall symbol_7
    rcall symbol_2
    rcall symbol_1
    ret
    word_3:
    rcall pause_word
    rcall symbol_P
    rcall symbol_E
    rcall symbol_T
    rcall symbol_R
    rcall symbol_O
    rcall symbol_V
    rcall pause_word
    rcall symbol_R
    rcall symbol_O
    rcall symbol_M
    rcall symbol_M
    rcall symbol_A
    rcall symbol_N
    ret

    ;############################################################
    ;# Таблица символов в формате Азбуки Морзе
    ;############################################################
    symbol_R :
    rcall point
    rcall tire
    rcall point
    ret
    symbol_K :
    rcall tire
    rcall point
    rcall tire
    ret
    symbol_5 :
    rcall point
    rcall point
    rcall point
    rcall point
    rcall point
    ret
    symbol_0 :
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    ret
    symbol_point:
    rcall point
    rcall point
    rcall point
    rcall point
    rcall point
    rcall point
    ret
    symbol_U :
    rcall point
    rcall point
    rcall tire
    ret
    symbol_P :
    rcall point
    rcall tire
    rcall tire
    rcall point
    ret
    symbol_E :
    rcall point
    ret
    symbol_T :
    rcall tire
    ret
    symbol_V :
    rcall point
    rcall point
    rcall tire
    ret
    symbol_O :
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    ret
    symbol_M :
    rcall tire
    rcall tire
    ret
    symbol_A :
    rcall point
    rcall tire
    ret
    symbol_N :
    rcall tire
    rcall point
    ret
    symbol_7 :
    rcall tire
    rcall tire
    rcall point
    rcall point
    rcall point
    ret
    symbol_9 :
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    rcall point
    ret
    symbol_1 :
    rcall point
    rcall tire
    rcall tire
    rcall tire
    rcall tire
    ret
    symbol_4 :
    rcall point
    rcall point
    rcall point
    rcall point
    rcall tire
    ret
    symbol_2 :
    rcall point
    rcall point
    rcall tire
    rcall tire
    rcall tire
    ret
    symbol_3 :
    rcall point
    rcall point
    rcall point
    rcall tire
    rcall tire
    ret

    ;############################################################
    ;# ФОРМИРОВАНИЕ ДЛИТЕЛЬНОСТЕЙ ТИРЕ, ТОЧКА И ПАУЗ МЕЖДУ СЛОВАМИ
    ;# Тире = 3 Точкам, ПАУЗА МЕЖДУ СЛОВАМИ = 7 точкам
    ;Тире = 157 мС должно 175 мС
    ;Точка = 58,5 мС
    ;ПАуза между символами = 29.7 мс должно 58.5 мС
    ;############################################################
    point:
    ldi tmp_3, wait_point_tone ;
    start_point:
    sbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    cbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    dec tmp_3
    cpi tmp_3,0
    breq end_point
    rjmp start_point
    end_point:
    rcall pause_point
    ret

    ;# ФОРМИРОВАНИЕ ДЛИТЕЛЬНОСТИ ТИРЕ T=3*T (точки)
    tire:
    ldi tmp_3, 0b1100000 ;96 T=177 mS

    start_tire: ; T=1,837 mS
    sbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    cbi PORTB, TONE
    rcall d1000; задержка в 1 мС
    dec tmp_3
    cpi tmp_3,0
    breq end_tire
    rjmp start_tire
    end_tire:
    rcall pause_point
    ret

    ;# ФОРМИРОВАНИЕ ДЛИТЕЛЬНОСТИ ПАУЗЫ МЕЖДУ СЛОВАМИ T=7*Tточки
    pause_word:
    ldi tmp_3, 0x06
    start_pause_word:
    rcall pause_point
    dec tmp_3
    cpi tmp_3,0
    breq end_pause_word
    rjmp start_pause_word
    end_pause_word:
    ret

    ;# ФОРМИРОВАНИЕ ДЛИТЕЛЬНОСТИ ТОЧКИ T=58,6 mS
    pause_point:
    push tmp
    clr tmp
    out TCNT0, tmp

    wait_p: ; T=0,928 mS
    in tmp, TCNT0
    cpi tmp, wait_point; N=58,5/0,928 = 63
    brlo wait_p
    pop tmp
    ret


Все авторские права принадлежат Петрову Р.В, RK50.RU

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА

Published / by rk50.ru

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА
1. Повышена чувствительность детектора для слабых сигналов, путем подачи смещения на транзистор через диодный детектор.
2. Тоновая посылка по окончании воспроизведения записанного файла
3. Тоновая посылка в формате азбуки Морзе при бездействии в течение 30 минут.
4. Задержка перед началом воспроизведения в 500 мСек, для открытия CTCSS -декодера и гарантированного воспроизведения первых букв в начале слова

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ

МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
МОДИФИКАЦИЯ ЭХО-РЕПИТЕРА, ЭХО-РЕПИТЕР В г. ПУШКИНЕ
Эхо-репитер, г. Пушкино, rk50.ru
Эхо-репитер, г. Пушкино, rk50.ru
Эхо-репитер, г. Пушкино, rk50.ru
Эхо-репитер, г. Пушкино, rk50.ru

Эхо-Репитрер, файл прошивки для ATTINY13A 0,85 Кб.


Все авторские права принадлежат Петрову Р.В, RK50.RU
Яндекс.Метрика