Я использую ATXmega16D4 и хочу переназначить выходные данные таймера / счетчика для сравнения каналов на разные выводы.Таблица данных гласит: «Установка этого бита переместит расположение OC0A с Px0 на Px4».Структура порта в файле iox16d4.h содержит следующие регистры.
typedef struct PORT_struct
{
... etc ....etc
register8_t INTFLAGS; /* Interrupt Flag Register */
register8_t reserved_0x0D;
register8_t REMAP; /* Pin Remap Register (available for PORTC to PORTF only) */
register8_t reserved_0x0F;
register8_t PIN0CTRL; /* Pin 0 Control Register */
...etc ...etc
} PORT_t;
Я пытаюсь получить доступ к регистру REMAP с помощью следующего вызова:
PORTD.REMAP |= 0x03;
Компилятор выдает ошибку:
Ошибка 'PORT_t{aka struct PORT_struct} 'не имеет члена с именем' REMAP '
Кажется, компилятор не может найти правильную структуру PORT_t.Если щелкнуть правой кнопкой мыши слово REMAP в atmel studio и щелкнуть по реализации Goto, он найдет ранее заданную структуру.
Почему Atmel Studio найдет структуру, а компилятор - нет?