SPI COMM в Atmega328p - PullRequest
       79

SPI COMM в Atmega328p

0 голосов
/ 22 апреля 2020

Я работаю на Atmega328p, используя плату Arduino Uno, моя задача - SPI-связь, используя уровень регистра, кто-нибудь может объяснить, что подразумевается под DD_MOSI, левый сдвиг "1

1 Ответ

0 голосов
/ 22 апреля 2020

Полагаю, вы ссылаетесь на примеры кода на стр. 172 таблицы ATmega328p (http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf). В этом примере они используют DD_MOSI в качестве замены битовой позиции управляющего бита для контакта, связанного с сигналом MOSI, который на рассматриваемом MCU является PortB [3]. Итак, когда у них есть строка:

DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);

Вы можете перевести это, чтобы заполнить связанный порт и сдвиги битов:

DDRB = (1<<DDB3)|(1<<DDB5); // Since SPI in on Port B, MOSI is the third pin and SCK is the 5th pin, see page 91-92
...