Подскажите или помогите разобраться с реализацией сего кода в программе на С. То есть того как взяв паралельно несколько логических сигналов, передать их последовательно куда либо. Хотелось бы разобраться по подробнее с популярным кодированием.
Манчестерский код. Пример реализации на С.
Доброго дня.
Подскажите или помогите разобраться с реализацией сего кода в программе на С. То есть того как взяв паралельно несколько логических сигналов, передать их последовательно куда либо. Хотелось бы разобраться по подробнее с популярным кодированием.
Подскажите или помогите разобраться с реализацией сего кода в программе на С. То есть того как взяв паралельно несколько логических сигналов, передать их последовательно куда либо. Хотелось бы разобраться по подробнее с популярным кодированием.
- Реклама
Чесно говоря, не знал что такое "Манчестерский код" и поэто обратился к Гуглу. На этой(Intuit.ru) странице прочитал. Передача действительно ведётся последовательно. Я так понял что нужно соорудить что-то вроде преобразователя т.е. принимать по 8 линиям, а передавать используя правила этого самого манчестерского кода. Тогда алгоритм выглядел бы примерно так:
Условимся что 1 - соответствует положительный перепад(0->1) а 0 - отрицательный(1->0).
До передачи - запускаем таймер на 100 нс(значение периода) и оформляем два прерывания - конец периода(переполнение таймера) и половина периода(OCRxAn)
1.Считываем значения с порта (получаем 8 бит для передачи)
2.В зависимости от значения LSB устанавливаем реакцию на прерывания, а именно:
LSB=1 : прерывание полупериода - уст. на линии вывода 0;
прерывание периода - уст. на линии вывода 1;
LSB=0 : прерывание полупериода - уст. на линии вывода 1;
прерывание периода - уст. на линии вывода 0;
3. По окончании периода выполнить сдвиг влево байта для передачи
4. Повторить 7 раз.
Условимся что 1 - соответствует положительный перепад(0->1) а 0 - отрицательный(1->0).
До передачи - запускаем таймер на 100 нс(значение периода) и оформляем два прерывания - конец периода(переполнение таймера) и половина периода(OCRxAn)
1.Считываем значения с порта (получаем 8 бит для передачи)
2.В зависимости от значения LSB устанавливаем реакцию на прерывания, а именно:
LSB=1 : прерывание полупериода - уст. на линии вывода 0;
прерывание периода - уст. на линии вывода 1;
LSB=0 : прерывание полупериода - уст. на линии вывода 1;
прерывание периода - уст. на линии вывода 0;
3. По окончании периода выполнить сдвиг влево байта для передачи
4. Повторить 7 раз.
There is only 10 kind of people: those who understands binary code and those who dont!!!
Возможно, что-нибудь из этого пригодится:
http://www.radiokot.ru/articles/16
http://www.radiokot.ru/articles/16
Оптимизм х (Опыт + Знания) = const
В точку. Самый ближайший пример - радиоуправление.Negor
Я так понял что нужно соорудить что-то вроде преобразователя т.е. принимать по 8 линиям, а передавать используя правила этого самого манчестерского кода.
То что надо. Думаю это поможет разобраться.
И я так понял это релизован пример приемника. А если так, то есть ли смысл надеятся на появление части третьей, где будет описан так же подробно пример передатчика?

