Golikov 0 13 апреля, 2006 Опубликовано 13 апреля, 2006 · Жалоба не понятно как поступать в такой ситуации: есть несколько процессов 2 из них должны изменять значение сигнала например, UART TX: один процесс записывает значения в регистр сдвига по внешнему сигналу второй по клоку сдвигает этот регистр если первый процесс записал 00001111, то при сдвиге второй процесс будет записывать в регистр значение х0000111, т.е. получится, что в текущий момент времени один процесс обнуляет бит №3, а второй устанавливает в единицу этот бит. :( что же делать в этом случае? -------- PS вообще-то идея есть, но хотелось бы иметь варианты решения В случае уарта не понятно зачем 2 процесса... По тому что пишите, по тому процессу и сдвигайте. а когда байт наберете генерите строб и забирайте целиком... Если вы хотите развязать момент помещения данных в регистр и передачу, то правильнее всего чтобы первый процесс клал данные в регистр и генерил строб что есть новые данные, а второй как увидит этот строб забирал бы данные в свой сдвиговый регистр а потом потихоньку их выдавливал наружу, а выдавив останавливался... И рассинхрона не будет, и одновременной записи в 1 бит тоже... так кстати и в процах УАРТ сделан, всегда есть 2 регистра, один на отправку куда пихаете данные параллельно, а второй сдвиговый который как раз отправляет, и в него данные копируются как только посылаются предыдущие или как появляются новые данные в первом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zxazx 0 17 апреля, 2006 Опубликовано 17 апреля, 2006 · Жалоба В случае уарта не понятно зачем 2 процесса... По тому что пишите, по тому процессу и сдвигайте. а когда байт наберете генерите строб и забирайте целиком... Если вы хотите развязать момент помещения данных в регистр и передачу, то правильнее всего чтобы первый процесс клал данные в регистр и генерил строб что есть новые данные, а второй как увидит этот строб забирал бы данные в свой сдвиговый регистр а потом потихоньку их выдавливал наружу, а выдавив останавливался... И рассинхрона не будет, и одновременной записи в 1 бит тоже... так кстати и в процах УАРТ сделан, всегда есть 2 регистра, один на отправку куда пихаете данные параллельно, а второй сдвиговый который как раз отправляет, и в него данные копируются как только посылаются предыдущие или как появляются новые данные в первом... Да, я так и сделал-по аналогии с уартами процов. В симуляторе, вроде работает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться