Как записать побитно число?
- Войдите на сайт для отправки комментариев
Сб, 12/10/2013 - 15:46
Всем привет! Недавно занимаюсь программированием.
Стоит задача
Есть датчик угла поворота, который выдает данные в коде Грея. Мне нужно считать эти данные и записать их в переменную типа int/byte но НЕ в МАССИВ!!!
Помогите плиз!
Датчик orlax p120.
Не существует такого датчика.
http://playground.arduino.cc/Main/RotaryEncoders
Всем привет! Недавно занимаюсь программированием.
Стоит задача
Есть датчик угла поворота, который выдает данные в коде Грея. Мне нужно считать эти данные и записать их в переменную типа int/byte но НЕ в МАССИВ!!!
Помогите плиз!
Датчик Орлэкс p120.
Никто вам ничего не напишит по двум причинам:
1. Вы некорректно/абстрактно задали вопрос.
2. А посмотреть что вы там пытаетесь подключить нет возможности, так как такого датчика угла поворота тоже не существует.
Можете еще разок продублировать свое кривое сообщение, только смысла от этого в нем больше не станет.
Bitwise Operators
Bits and Bytes
1) у меня идет считывание кода Грея. Поначалу записывали в массив. Например:
Во-первых, почитайте о delay() и посмотрите какие значения она может принимать. delayMicroseconds()
Во-вторых, Вставка программного кода в тему/комментарий.
Втретих, по вашей ссылке датчик давления.
Как я понял этот датчик "общается" по SPI и вам нужно считать данные в переменную, почему у вас идет считывание с 1-го бита я не знаю, так как нет описания датчика неизвестно в каком из 4-х режимов SPI датчик передает данные, но могу предположить что вы неверно считываете данные, так же неизвестно как передаются данные - младшим битом вперед (LSB) или старшим (MSB):
Ну а дальше само преобразование:
Без конкретно поставленной задачи или без описания датчика можно гадать сколько угодно...
Спасибо, будем пробовать!
Ну вот это снова я.
Почему-то не получается корректно опросить датчик.
Высылаю данные датчика. А задача состоит в том, чтобы снять данные,приходящие с датчика, а потом перевести эти данные в градусы.
А как вы подключаете дуину к этому энкодеру? Еще есть что то из документации? И можно картинку "Параметры сигналов" показать поближе?
В общем не знаю как вы там его подключили, но если вы внимательно читали что написано в это бумажке, то "Способ передачи данных ______ RS-422" должен был вас натолкнуть на мысль что напрямую к дуине подключить этот энкодер не получится.
Что бы согласовать физические уповни дуины и энкодера нужно подключать их друг к другу либо через преобразователь RS-422<->TTL, либо через два преобразователя RS-485<->TTL.
Да, разумеется мы подключали через МАХ490
То есть подключено так?
дуина | max490
sclk | DI
sdata | RO
max490 | энкодер
A | DATA
B | /DATA
Z | /CLOCK
Y | CLOCK
верно?
Датчик скольки разрядный? И как далеко находится от дуины?
Да подключали так.
Разрядность 10
на расстоянии приблизительно 1 метра
Корпус MAX 490 - DIP
Как то так
А что мешает организовать переменную типа word (для вашего 10-битного энкодера как раз хватит)?. Цикл от 0 до 16 и за каждый такт цикла читать пин порта куда подключён энкодер, а потом сдвигать влево-вправо на 1 бит по необходимости?????? Вот вам почитайте. http://robocraft.ru/blog/arduino/33.html про метод сдвига.
А что вам мешает почитать всю ветку, прочитать докуметацию на фото, посмотреть диаграммы, почитать описние word и посмотреть код из сообщения выше?
Реплика была не в ваш адрес, и вы правы, я ваш исходник не смотрел, но да идея такова. Как вы говорите: "...как-то так...".