Опять про ультрасоники... Знающие есть? :)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Newone 23 апреля 2004 г. 23:56

Нужен совет бывалого...
Делаю ультразвуковой измеритель расстояния на Murata MA40S4 S/R + AVR ATMega16 (на 8 МГц)
Емкость приемника и передатчика по 2550pF, хотя тут вроде это и неважно.
Подпаял излучатель к земле и ноге котроллера, приемник к плюсу и ноге контроллера. Ничего не забыл? :)
Находятся параллельно друг другу на расстоянии 2 см, направлены в одну сторону.
Далее шаманством добился __|--|__|--|__... с циклом 25 мкс (12.50 мкс "1", 12.50 мкс "0", итого 40 КГц)
посылаю на излучатель 16 импульсов (400 мкс). Ничего что 5В? :)
Далее перехожу в цикл, где каждые 125 мкс проверяю пин порта, к которому подцеплен приемник.
На нем глухо. После 1024 опросов наступает таймаут.
Что не так, подскажите, а? :)

.EQU SONARPORT=PORTD
.EQU SONAROUT1=6
.EQU SONARIN1=5
.EQU SONARDIR=DDRD

SonarSend:
push r16
push r17
push r18
push r19

ldi r18, 33
ldi r16, 16
in r19, SREG
push r19
cli

SonarSend01:
sbi SONARPORT, SONAROUT1
nop
nop
nop
nop
nop
mov r19, r18
SonarSend02:
dec r19
brne SonarSend02
cbi SONARPORT, SONAROUT1
nop
nop
mov r19, r18
SonarSend03:
dec r19
brne SonarSend03
dec r16
brne SonarSend01

pop r16
out SREG, r16
pop r19
pop r18
pop r17
pop r16
ret

; r16=SONARIN1
SonarWait:
push xl
push xh
push r18
push r19

clr xh
clr xl
clr r17
ldi r19, 1
SonarWait00:
lsl r19
dec r16
brne SonarWait00


SonarWait01:
in r18, SONARPORT
and r18, r19
breq SonarWait02
mov r16, xl
mov r17, xh
rjmp SonarWait04
SonarWait02:
ldi r18, 249
SonarWait03:
nop
dec r18
brne SonarWait03

adiw xh:xl, 1
cpi xh, 4
brne SonarWait01
ldi r16,0xff
ldi r17,0xff
SonarWait04:

pop r19
pop r18
pop xh
pop xl
ret

SonarPrep:

cbi SONARPORT, SONAROUT1
sbi SONARDIR, SONAROUT1

cbi SONARPORT, SONARIN1
cbi SONARDIR, SONARIN1
ret


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru