Вот вечная эта путаница...
Предположим, приняли мы сигнал :
Вложение:
Комментарий к файлу: Бапйт
Byte.JPG [2.87 KiB]
Скачиваний: 343
Неважно, как мы зафиксировали начало и конец, знаем только, что байт шел младшим битом вперед. Собрались 10 мудрецов и заспорили насчет принятого байта :
- Это десятичное число 114
- Нет, это 16-ричное число 72
- Нет, это 2 пикселя - один светлосерый, другой темносерый
и т.д.
Кто прав ? Правы все, и не прав никто - принята просто комбинация бит, а как ее интерпретировать - это уже как условились на приемном и передающем конце линии. И не бывает ни десятичного, ни 16-ричного, ни 8-ричного байта - бывает только представление
для человека на бумаге байта, существующего в виде комбинации высокого и низкого уровня.
Возвращаясь к исходному вопросу : что нужно? Передать байт? Так надо просто задвинуть его в регистр передатчика и запустить передачу. Такой метод передачи байта реализован в версии RTU протокола MODBUS. В том же протоколе есть и другой метод - ASCII, когда байт разбивается на 2 тетрады ( ниббла ), каждый из которых кодируется одним из 16 возможных СИМВОЛОВ - элементов 16-ричного представления этого ниббла - 0...9,A...F . В этом случае передаваемая последовательность состоит из символов ограниченного набора, что позволяет ввести для синхронизации не входящий в этот
набор символы, например, стартовый ':'. Можно дополнительно вести контроль правильности прохождения пакета - наличие в последовательности отличного от 0...9,A...F символа свидетельствует об ошибке приема, что не избавляет от необходимости более "сильных" контрольных мер, например, контрольной суммы.
Я прошу прощения у профи за эту банальщину, но так уж часто встречаются вопросы типа : а как передать 16-ричный байт? А как бы он случаем не оказался 8-ричным ? - что пора это уже в FAQ вмонтировать.
Поэтому автору нужно определиться : если он собирается стыковаться с уже готовым устройством, то нужно соблюдать протокол этого устройства, сообразуясь с мануалкой. Если и то, и это еще в проекте - надо, исходя из требований максимального быстродействия и минимальной вероятности пропуска ошибки выбрать нужный код.
На абстрактно поставленный вопрос - полуконкректно составленный ответ.
Но судя по тому, что автор не знает о существовании волшебного слова UART ( или SPI ), ему это пока не по силам. Ну, напишете за него код, а сервопривод - штука серьезная, оторвет кому бошку - кто в ответе ? Совет банальный, но единственно возможный - для серьезных задач пригласите профи.