И еще:
К устройству подключены 3 табло (2 - по 3 цифры и 1 - 11 сегментов (2-а сдвиговых)).
Так же уместен вопрос о "передаче двухбайтового значения".
ЗЫ: Где-то кто-то выкладывал функцию для передачи 16 бит... Посеял ссылку... ((
Спасибо.
Спасибо. Попробую.
---
Попробовал, результата 0.
ЗЫ: Дата Клоки поштучно толкаю без проблем... Но они на СПИ подвешены (регистры), хочеться так и использовать.
ЗЫЫ: Сигнал к регистрам идет через буфера НС244, ДДРБ.1 вешаю на 1
Мой Прот 7.4 SP3 не открывает (на версию матерится)... Ща сам набросаю... Посмотрю.
А, да... Чип Мега 162, Клок=3,6864 ничего не кажет по приведенному примеру (
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
krysun писал(а):Вопрос. Как организовать выбор CS (нужного 4094), или как передать 24 бита...
Если я правильно понял, то вопрос в том как делать вывод на несколько групп индикаторов разной разрядности (в смысле разного количества 7-ми сегментных индикаторов), и при этом посадить вывод на SPI.
...пусть каждая группа индикаторов будет сделана как на рисунке выложенном urry. Данные включены в каскад. Стробы микросхем внутри группы соединены вместе. Нужно стробы каждой группы управлялись отдельно, т.е. подключить их на отдельные выводы контроллера. Цепляем SCK и MOSI на все группы параллельно.
Выбор CS тут, как бы, ненужен. А вот строб - да. Пока строб не дёрнешь данные со сдвигового регистра в регистр хранения не запишутся.
Например, пусть будет 2 группы индикаторов. Группа 1 имеет 2 разряда, а группа 2 имеет 4 разряда.
Да, ещё, пусть, 7-ми сегментники подключены без дешифраторов, т.е. по SPI надо выводить код, который будет соответствовать начертанию цифр или символов (!!!). И пусть сегмент на индикаторе будет гореть при 1 в соответствующем бите.
Тогда для очистки всех групп надо по SPI закачать количество нулевых байт равное максимальной разрядности имеющихся групп, т.е. 4 в нашем примере. А затем "дёрнуть" строб каждой группы.
При выводе на 1-ю группу индикаторов, записываем в SPI два байта (с кодами индикации) и дёргаем строб первой группы. Индикация на второй группе не измениться.
При выводе на вторую группу надо выводить 4 байта и дёргать строб второй группы.
PS: Делал как-то на 74hc595 индикатор на 4 разряда по SPI. Если интересно - поищу схемку.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Получается, у меня 3 табло (по 3 регистра) и линейка (2 регистра) на 2-х табло и линейки MOSI и SCK соединены между собой (короче, все на 10pin шлейфе... OE и СТРОБ раздельно подключены.... Срисую схему и выложу.... Пока вот фотка стенда и ближе индикатора... + пример разводки самого индикатора и буфера на мамке... Спс.
Проблема решилась. Ваши примеры и советы работают 100%. Это у меня лыжи не едут.
В mega162 в FUSE-ах было выставлено M161C=0 (режим совместимости с mega161 МК).
При вызове SPI("что-то") несколько раз, зацикливался только 1-й вызов.
Потому и выводились на все индикаторы одинаковые цыфры.