Цитата(DmitryR @ May 8 2009, 10:30)

Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.
я бы наверное примерно так и сделал, только не непрерывно канал сканировал, а по прерыванию. т.е. по перепаду переход на подпрограмму приема, если через 250нс стартовый уровень подтверждается, то начало отсчетов по 500нс
Цитата(Stas @ Jan 15 2009, 18:39)

Подстройка частоты приема производится по каждому фронту на обоих входных линиях.
хотя так оно может быть и правильнее, все-таки Манчестер - синхронный интерфейс. т.е. по первому прерыванию делаем первый отсчет 250нс, а последующие по 500нс, но если приходит прерывание, то перезапускаем отсчет. в результате получается так:
1.по первому прерыванию делаем три отсчета (250-500-500нс) для приема первой половины синхроимпульса;
2.по второму прерыванию делаем три отсчета (250-500-500нс) для приема второй половины синхроимпульса;
3.по последующим прерываниям делаем по одному отсчету (250нс) для приема полубита.
честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано