Отсутствует регистр переназначения портов atxmega16D4 - PullRequest
0 голосов
/ 19 декабря 2018

Я использую 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 найдет структуру, а компилятор - нет?

...