74HC165, SPI...
- Войдите на сайт для отправки комментариев
Пт, 13/02/2015 - 11:25
Добрый день
Появилась необходимость считать дискретную информацию с 132 датчиков (простые фотодиоды). Понятно, что выходов у той же Mega не хватит для этого. Думаю, что для моей цели подойдут 74HC165 через аппатный SPI.
Но так как с SPI ни разу не работал, появились вопросы:
1. какую частоту выбрать на интерфейсе SPI, если датчики надо опрашивать 8 раз в секунду?
2. какой тип данных использовать? подойдут ли 17 переменных типа байт? и как потом с ними работать на уровне битов? т.е. мне надо будет сравнивать предыдущие состояние и теперешнее.
Спасибо
На счет частоты опроса датчиков, я написал примерную частоту, в идеале будет реализовано не прерывании (импульс с еще одного датчика)
1. 132_датчика x 8_развсекунду x 1_бит = 1056Гц (минимум). То есть, хватит с большим запасом - частота SPI обычно во много раз выше.
2. Да, конечно, любой целочисленный тип подойдёт. SPI контроллер работает с байтами, и сама atmega тоже, поэтому выбирать более "длинный" тип смысла нет. Пусть будут байты. И скорее всего, именно двумя массивами - для предыдущего состояния, и для нового. А работать как обычно - битовыми операциями. Можно, для удобства, написать функцию для обращения к определёному биту.
Получается, что лучше использовать для каждого регистра перемененную 1 байт? И как я смогу обратится к определенную биту?
Как-нибудь так, например:
Спасибо огромное! Буду пробовать
Подскажите по коду, если мне надо приняться с SPI допустим 3 массива типа byte, так будет работать: