我正在使用ATXmega16D4,并希望将定时器/计数器输出比较通道重新映射到不同的引脚。数据表指出:“将该位置1会将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结构。在atmel studio中右键单击REMAP单词,然后单击Goto实现,它将找到前面给出的结构。
Atmel Studio为什么会找到结构,但编译器找不到?