Урок №13. Пишем программный код для подключения сдвигового регистра к микроконтроллеру AVR через SPI

preview_player
Показать описание
Пишем программный код для подключения 8-битного сдвигового регистр SN74HC595 к микроконтроллеру Atmega8 через SPI.
Рекомендации по теме
Комментарии
Автор

Видео полезное, осталось ещё найти информацию как правильно писать в регистры и и х понимать

максКозлов-фш
Автор

Здравствуйте, Алеусандр. Удручающе, что вы забыли про PIC контроллеры, ведь по AVR обучающего контента достаточно, а в PIC можно было бы многому увас научится, учитывая, что они еще и стабильнее в работе(помехи, температура, кз и т.д.).

hassikc
Автор

Прерывания здесь не используются. Окончание передачи байта устанавливается опросом бита регистра (поллингом флага). Так что прерывания можно и не разрешать, тем более что и обработчика прерывания в программе нет. Надлежащая работа программы (бегущий огонь) зависит от скорости работы SPI. У Вас частота SCK в 4 раза меньше тактовой частоты МК, т.е. Fsck=1 МГц, у меня (я пробовала в PROTEUS на ATmega328p с такт частотой 16 Мгц) что-то похожее на правду получилось лишь при Fsck=250 кГц. Разобралась, в чем проблема!!! - не надо перед входом в вечный цикл обращаться к регистру данных SPDR (строку SPDR = следует закоментировать), из-за неё возникает проблема переполнения (в Proteus это хорошо видно). Это лишние данные, для которых в вечном будет производиться опрос готовности переданных данных (поллинг), из-за этого сбои в в передачах, и на параллельных выходах регистра (светодиодах) делается невесть что. На железе данное утверждение проверить не могу из-за отсутствия микросхемы регистра. Но в любом случае хуже не будет, если указанную строку убрать!

marina