Конвертация boolean в byte
- Войдите на сайт для отправки комментариев
Втр, 31/05/2011 - 18:42
Ребят я собираю значение LOW или HIGH с ноги ардуины так:
void loop(){ for(int i=0; i<=7; i++){ t = digitalRead(IN_DATA); } }
ВОПРОС: Подскажите как собрать 8 значений HIGH или LOW в паеременную типа байт?
на ум приходит изврат с массивом и значениями его) 8 проверок если, - если последнее значение 1 то х+=128, если предпоследнее значение тоже равно 1 то х+=64, и т.д. можно с разных сторон подходить) В сумме получим числовое значение, а его можно уже в любой тип перевести.
Думаю есть проще только пока не вспомнил
Еще можно с этим << http://arduino.cc/en/Reference/Bitshift
пишу без проверки
bitMassiv[]; массив булеан
int z;
int x;
for(int i=0;i<7;i++){ /*от младшего ко старшему разряду, от 0 значения массива до 7го, где 7 ячейка это будет старший бит, который равен числовому значению 128*/
if (bitMassiv[i] == 1){
x=1<<i;
z+=x;
}
ну а дальше обычный перевод y=byte(z);
В теории работать будет, завтра на работе перепроверю
if (bitMassiv[i] == 1){
x=1<<i;
z+=x;
}
ну а дальше обычный перевод y=byte(z);
Можно проще: