"Складывание" бит в двоичное число
- Войдите на сайт для отправки комментариев
Пытаюсь написать код для "чтения" для датчика температуры TMP121
Там он выдаёт при пропадании питания на одном из пинов (CS) последовательность из 16 бит с тактовой частотой задаваемой с ардуины (контакт SCK). Тактовый генератор я изобразил, генератор измерения/передачи тоже. Считывание бит на подъеме фронта SCK тоже.
В результате получил 16 переменных, с значениями 1 или 0. Как их слепить в одну переменную, т.е. последовательно записать биты с 15 по 3? Там надо даже в принципе не 16, а всего 13, 3 последних у этого датчика всегда равняются нулю, но даже учитывая это длина числа получается очень большой.
Я в курсе, что это обычная ISP передача, но пока с бибилиотекой ISP не разобрался, да и тут она не нужна - передача идёт в одну сторону.
Sync, зачем вы делали 16 переменных? Складывайте всё в конечную переменную сразу по приёму бита. data|=(1<<i); где i -номер бита.
Sync, зачем вы делали 16 переменных? Складывайте всё в конечную переменную сразу по приёму бита. data|=(1<<i); где i -номер бита.
Спасибо, сделаю по нормальному сейчас.
А! А какой тип переменной должен быть? И можно пояснения по синтаксису...
data это перменная, куда будут складываться биты, | что это значит? У меня есть счётчик бит, это i в вашем примере - как его остановить, чтоб он на 16 переставал записывать? Просто добавить условие if (i > 16) ?
Sync, давайте ваш скетч, так проще будет понять как всё это внедрить.
Пока это выглядит как-то так. Правда датчик что-то перестал отвечать, я параллельно осцилографом смотрю у него сигналы, чтоб видеть фактически их наличие.
Как-то так: if (readbit) data|=(1<<(16-bitcount) ); В начале цикла data нужно обнулить
Чё-то при добавлении переменной data перестал компилироваться скетч. Хрень какая-то. Ругается на все перменные и войды. Самое странное, что и резервная копия не компилится.
Что то я вообще ничего не понял - if без условия и фигурных скобок - он же вообще выполняться не будет. переменная data какая-то непонятная, из-за которой компилятор не работает даже с резервной копией.
Sync, подобное бывает когда два схожих проекта в одной папке.
Самое странное, что и резервная копия не компилится.
Мда, Вы случайно не для гитары прибамбас делаете? А то с гитарами там ведь известное дело :))))))))))))