|
ADuC841 UART, Full Duplex Software |
|
|
|
Jan 25 2008, 20:42
|
Местный
  
Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35

|
Свой вариант работает, но присутствует эхо, чисто цифровое. Хотелось бы посмотреть, как другие реализуют. Есть у кого-нибудь ссылки на примеры, желательно на asm? Не могу найти. Возможно, кто-то сталкивался с такой проблемой.
--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
|
|
|
|
|
 |
Ответов
|
Jan 28 2008, 11:49
|
Местный
  
Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35

|
Цитата(SALOME @ Jan 28 2008, 13:00)  Честно говоря, не догоняю как реализованно это устройство. Вы прочитатйте внимательно, что написали  . Я имею ввиду вторую строчку "SPEAKER - ЦАП (ADuс841) - RS-232 - АЦП (ADuC841) - MIC".??? MIC и SPEAKER находятся в одном узле (телефонная трубка). Неверно ответил, п/программа обмена информацией в каждом устройстве терминала одна и та же и прилагается ниже. Уточнение: тихое эхо присутствует как на вызывающем термин. при отключ. акустике на вызываемом термин. так и при подключенной акустике на обоих концах. Код DEXCHANGE: setb RI setb RI
AA: jnb RI,ADCS mov A,SBUF ;Receive clr RI call Decompression
mov DAC0H,r7 ;DAC HighByte mov DAC0L,r6 ;DAC LowByte
ADCS: setb SCONV ;ADC - sample jnb ADCI,$ ; clr ADCI ; ` clr SCONV ;
MOV A,ADCDATAH ;ADC HighByte anl A,#0Fh MOV r7,A MOV r6,ADCDATAL ;ADC LowByte call Compression
jnb TI,$ clr TI mov SBUF,A ;Transmit jmp AA ;then again
RET
--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
|
|
|
|
|
Jan 28 2008, 16:20
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105

|
Цитата(Panych @ Jan 28 2008, 17:49)  Код DEXCHANGE: setb RI setb RI
AA: jnb RI,ADCS mov A,SBUF ;Receive clr RI call Decompression
mov DAC0H,r7 ;DAC HighByte mov DAC0L,r6 ;DAC LowByte
ADCS: setb SCONV ;ADC - sample jnb ADCI,$ ; clr ADCI ; ` clr SCONV ;
MOV A,ADCDATAH;ADC HighByte anl A,#0Fh MOV r7,A MOV r6,ADCDATAL ;ADC LowByte call Compression
jnb TI,$ clr TI mov SBUF,A ;Transmit jmp AA ;then again
RET Здесь возможна ситуация пропуска принимаемого байта, если время выполнения "call Compression" велико. Если не успеваешь считать данные до прихода новых, то они пропадают. У вас передача идет точно без пропусков (jnb TI,$), а прием - возможны пропуски (jnb RI,ADCS), пока программа занимается получением и обработкой данных от АЦП. Не ясно, что делает и возвращает "call Compression". Судя по всему не простое масштабирование 12 разрядного результата АЦП. Именно это и отправляется в буфер обмена UART. Может там эхо и образуется? И еще: убедитесь, что у Вас отключено прерывание.
Сообщение отредактировал Linker - Jan 28 2008, 16:28
--------------------
Я здесь и сейчас...
|
|
|
|
Сообщений в этой теме
Panych ADuC841 UART Jan 25 2008, 20:42 Linker Цитата(Panych @ Jan 26 2008, 02:42) Свой ... Jan 26 2008, 18:45 Panych есть 2 канала речевой связи FULL DUPLEX:
MIC -... Jan 27 2008, 13:20 Linker Цитата(Panych @ Jan 27 2008, 19:20) 1.Нек... Jan 27 2008, 15:42 Tanya Цитата(Panych @ Jan 27 2008, 16:20) Терми... Jan 27 2008, 16:59 SALOME Цитата(Panych @ Jan 27 2008, 20:20) есть ... Jan 28 2008, 10:00 rezident Видимо речь про акустическое эхо (пускай даже и пр... Jan 27 2008, 17:47 Tanya Цитата(Panych @ Jan 28 2008, 14:49) MIC и... Jan 28 2008, 16:36 Panych Спасибо всем, особенно Linker.
Все заработало. Feb 8 2008, 15:07 ncux Так что же было? Нам тоже интересно Действительно... Mar 3 2008, 18:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|