(新手小白问题)IAR中的寄存器定义
最近用本站下载的IAR 5.50写lpc的程序,发现SPI寄存器如SPCCR等不好使用,只能自己加了网上找的头文件,请问IAR中是否已有头文件?添加头文件如
/* SPI (Serial Peripheral Interface) */
/* SPI总线接口的特殊寄存器 */
#define SPI_SPCR (*((volatile unsigned short *) 0xE0020000))
#define SPI_SPSR (*((volatile unsigned char *) 0xE0020004))
#define SPI_SPDR (*((volatile unsigned short *) 0xE0020008))
#define SPI_SPCCR (*((volatile unsigned char *) 0xE002000C))
#define SPI_SPINT (*((volatile unsigned char *) 0xE002001C))
在iolpc2103中有这样的定义
/***************************************************************************
**
** SPI
**
***************************************************************************/
__IO_REG32_BIT(S0SPCR, 0xE0020000,__READ_WRITE,__spcr_bits);
__IO_REG32_BIT(S0SPSR, 0xE0020004,__READ ,__spsr_bits);
__IO_REG32_BIT(S0SPDR, 0xE0020008,__READ_WRITE,__spdr_bits);
__IO_REG32_BIT(S0SPCCR, 0xE002000C,__READ_WRITE,__spccr_bits);
__IO_REG32_BIT(S0SPINT, 0xE002001C,__READ_WRITE,__spint_bits);
/***************************************************************************
为什么无法直接使用呢? /* Clock divider register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
unsigned char CPUDIV : 3;
unsigned char HSIDIV : 2;
} __BITS_CLK_CKDIVR;
#endif
__IO_REG8_BIT(CLK_CKDIVR,0x50C6, __READ_WRITE, __BITS_CLK_CKDIVR);
随便搭车问下上面这段的意思。。。哪位能抽空讲解下吗?
为什么对CLK_CKDIVR赋值,结果CPUDIV = 0; HSIDIV =11;呢?这是怎么来的!
页:
[1]