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

 
 
 
Reply to this topicStart new topic
> Проблемы при считывании данных в порт at91sam7s, При ожидании контроллером данных от внешнего источника, в порт записыв
Bulat
сообщение Sep 10 2008, 11:09
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Контроллер ожидает флаг от микросхемы-приемника, кот. говорит о получении приемником слова данных. Если сначала отправить это слово приемнику, а потом запустить контроллер, то это слово контроллером считается правильно, но если сначала запустить контроллер, чтобы он ожидал флаг от приемника, то тогда слово, принятое приемником не соответствует тому, что контроллер отправляет на хост через усб-порт.
Код
      RCV = 0;
      while(RCV == 0)
      {
        RCV = regs->PIOA_PDSR&0x800000; //Ожидание выставление флага приемником
      }
            
      regs->PIOA_ODSR = 0x400000; //настройка портов для считывание принятого приемником слова
      
      PIO_copy = regs->PIOA_PDSR; //Считываем принятое слово из PDSR
      
      regs->PIOA_ODSR = 0x2080000; //

      send_to_host();//отправляет полученные данные на хост через усб-порт


Похоже проблема возникает в этом цикле:
while(RCV == 0)
{
RCV = regs->PIOA_PDSR&0x800000; //Ожидание выставление флага приемником
}
Потому что я для проверки после этого цикла присваивал PIO_copy конкретное значение и отправлял его на хост - все правильно доходило!
Может в процессе ожидания PDSR чем то забивается?
Заранее благодарен!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 10 2008, 11:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Bulat @ Sep 10 2008, 15:09) *
Может в процессе ожидания PDSR чем то забивается?

PDSR ничем не забивается. Попробуйте ввести задержку перед считыванием данных.
Go to the top of the page
 
+Quote Post
Bulat
сообщение Sep 10 2008, 15:54
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Цитата(aaarrr @ Sep 10 2008, 17:25) *
PDSR ничем не забивается. Попробуйте ввести задержку перед считыванием данных.

Т.е. нужно ввести задержку после цикла ожидания?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 10 2008, 16:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну да. По-хорошему, конечно, сначала посмотреть документацию на "приемник".
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:29
Рейтинг@Mail.ru


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