Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы при считывании данных в порт at91sam7s
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Bulat
Контроллер ожидает флаг от микросхемы-приемника, кот. говорит о получении приемником слова данных. Если сначала отправить это слово приемнику, а потом запустить контроллер, то это слово контроллером считается правильно, но если сначала запустить контроллер, чтобы он ожидал флаг от приемника, то тогда слово, принятое приемником не соответствует тому, что контроллер отправляет на хост через усб-порт.
Код
      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 чем то забивается?
Заранее благодарен!
aaarrr
Цитата(Bulat @ Sep 10 2008, 15:09) *
Может в процессе ожидания PDSR чем то забивается?

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

Т.е. нужно ввести задержку после цикла ожидания?
aaarrr
Ну да. По-хорошему, конечно, сначала посмотреть документацию на "приемник".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.