Я пытаюсь написать программу в сборке, чтобы переключить встроенный светодиод Arduino MEGA2560 в сборке.
Для этого мне просто нужно указать направление вывода (13 в данном случае это PB7) в качестве выхода, а затем установить этот вывод как Высокий или Низкий.
Я понимаю, что есть два регистра, связанные с этой проблемой. один - это регистр направления порта (DDRB) и регистр состояния выводов (PORTB)
Поэтому я пытаюсь понять, какой номер или адрес имеют эти регистры, чтобы я мог присваивать им значения в сборке,Я зашел в библиотеку C ++, в которой эти константы определены (iomxx0.h) и, например, DDRB определяется следующим образом:
#define DDRB _SFR_IO8(0x04)
#define DDB7 7
#define DDB6 6
#define DDB5 5
#define DDB4 4
#define DDB3 3
#define DDB2 2
#define DDB1 1
#define DDB0 0
Мне интересно узнать, является ли адрес регистра 0x04? и если это так, что делает _SFR_IO8 ()?