реклама на сайте
подробности

 
 
> ADuC841 UART, Full Duplex Software
Panych
сообщение Jan 25 2008, 20:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Свой вариант работает, но присутствует эхо, чисто цифровое.
Хотелось бы посмотреть, как другие реализуют.
Есть у кого-нибудь ссылки на примеры, желательно на asm? Не могу найти.
Возможно, кто-то сталкивался с такой проблемой.


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Panych
сообщение Jan 28 2008, 11:49
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Цитата(SALOME @ Jan 28 2008, 13:00) *
Честно говоря, не догоняю как реализованно это устройство. Вы прочитатйте внимательно, что написали smile.gif. Я имею ввиду вторую строчку "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


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
Linker
сообщение Jan 28 2008, 16:20
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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


--------------------
Я здесь и сейчас...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.02536 секунд с 7
ELECTRONIX ©2004-2016