Я еще раз прошу прощения за дилетантские вопросы, я новичок и отрываю вас на всякую мелочь. Я не могу постичь некоторых вещей:
1. команда spi_transfer() - нет никаких подключаемых библиотек, предположение только одно - она начинает работать потому, что инициализируется работа SPI интерфейса. Вот этой командой:
SPCR = (1<<SPE)|(1<<MSTR); - здесь операция ИЛИ вносит в байт SPCR биты "1" в ячейки SPE (6) - (включение работы SPI) и MSTR (4) - (Ардуино - мастер). Остальные биты 0, что означает: прерывания от SPI запрещены SPIE (7), сначала будет передаваться младший разряд DORD (5), сигнал синхронизации в режиме ожидания - 0 CPOL (3), захват сигнала по заднему фронту CPHA (2) и SPR1 и SPR0 задают скорость в нашем случае "/4" (0 и в регистре SPSR в 0м бите). Я все правильно понял?
Далее идет spi_junk=SPSR; - присвоение ,байту spi_junk содержимого SPSR - по умолчанию все "0", т.к. сбрасываются при обращении. И соответственно следующей строкой spi_junk=SPDR происходит присвоение содержимого байта spi_junk байту SPDR, т.е. там тоже все "0". Я все правильно излагаю?
Суть первого вопроса: мне все равно не понятно, почему в вашем коде компилятор не находит ошибок, а во втором коде, который я скопировал с вашего компилятор выдает ошибку "error: 'spi_transfer' was not declared in this scope"? Да, я скопировал не весь код, а только шапку, но она идентична вашей шапке.
2. Второй вопрос, который мучает меня и на который я не могу найти ответ: в шапке есть указание адресов регистров в MAX 7456 типа:
#define DMM_reg 0x04
#define DMAH_reg 0x05
#define DMAL_reg 0x06
где цифры 0x04 - адреса, где находятся регистры.
А дальше идут:
#define VIDEO_BUFFER_DISABLE 0x01
#define MAX7456_RESET 0x02
#define VERTICAL_SYNC_NEXT_VSYNC 0x04
#define OSD_ENABLE 0x08
Здесь цифры 0x02 и другие что означают? Это тоже адреса? Или это команды? Опять таки, никаких библиотек не подключено, откуда названия этих команд или регистров? Эти цифры записаны в шестнадцатеричной системе?
Заранее спасибо, хочется понять как это работает, а не тупо копипастить.





Ответить с цитированием