Приём байта
- Войдите на сайт для отправки комментариев
Пт, 20/03/2015 - 11:22
Всем привет!
Подскажите как мне решить такую задачу:
Принимаю на ардуино данные по трем линиям: данные, синхроимпульс, CS. Протокол похож на SPI.
Повесил прерывание на линии синхро и в момент срабатывания считываю значение на линии данных примерно так:
b1 |= (digitalRead(4)); b1 = (b1 << 1);
Проблема в том что данные передаются младшим битом вперед. Никак не могу сообразить как мне затолкать их в переменную в обратном порядке: когда младший бит справа.
А чем не подходит SPI? Насколько знаю там можно настраивать это.
Через 8 бит первый принятый будет первым
А чем не подходит SPI?
Протокол похож на SPI - но есть значительные отличия:
1. в посылке 20 бит;
2. скорость - 20kHz.
В таких условиях аппаратный SPI ничего не принимает.
А такой вариант не прокатит?
можно ли сдвинуть значение полученное digitalRead на 19 влево, при b1 - unsigned long ?