Контроллер ожидает флаг от микросхемы-приемника, кот. говорит о получении приемником слова данных. Если сначала отправить это слово приемнику, а потом запустить контроллер, то это слово контроллером считается правильно, но если сначала запустить контроллер, чтобы он ожидал флаг от приемника, то тогда слово, принятое приемником не соответствует тому, что контроллер отправляет на хост через усб-порт.
Код
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 чем то забивается?
Заранее благодарен!