打印
[STM8]

IAR STM8头文件错误,大家注意一下!

[复制链接]
4789|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcu5i51|  楼主 | 2010-5-8 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天用了一下IAR-STM8,简单的代码可以正确执行,再把项目文件移植过程后无**确运行;后来想起了STVD4.11中STM8S系列的头文件有问题,仔细核对,真的一摸一样,于是手工修改TIM4的定义,运行基本正常;
STVD4.14 .h
/* 8-Bit  Timer 4 (TIM4) */
/*****************************************************************/
/* TIM4 Control register 1 */
DEF_8BIT_REG_AT(TIM4_CR1,0x5340);
/* TIM4 Interrupt enable register */
DEF_8BIT_REG_AT(TIM4_IER,0x5343);
/* TIM4 Status register */
DEF_8BIT_REG_AT(TIM4_SR,0x5344);
/* TIM4 Event Generation register */
DEF_8BIT_REG_AT(TIM4_EGR,0x5345);
/* TIM4 Counter */
DEF_8BIT_REG_AT(TIM4_CNTR,0x5346);
/* TIM4 Prescaler register */
DEF_8BIT_REG_AT(TIM4_PSCR,0x5347);
/* TIM4 Auto-reload register */
DEF_8BIT_REG_AT(TIM4_ARR,0x5348);

iar iostm8s103f.h
/* TIM4 control register 1 */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char CEN         : 1;
  unsigned char UDIS        : 1;
  unsigned char URS         : 1;
  unsigned char OPM         : 1;
  unsigned char             : 3;
  unsigned char ARPE        : 1;
} __BITS_TIM4_CR1;
#endif
__IO_REG8_BIT(TIM4_CR1,    0x5340, __READ_WRITE, __BITS_TIM4_CR1);
/* TIM4 interrupt enable register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UIE         : 1;
  unsigned char             : 5;
  unsigned char TIE         : 1;
} __BITS_TIM4_IER;
#endif
__IO_REG8_BIT(TIM4_IER,    0x5343, __READ_WRITE, __BITS_TIM4_IER);
/* TIM4 status register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UIF         : 1;
  unsigned char             : 5;
  unsigned char TIF         : 1;
} __BITS_TIM4_SR;
#endif
__IO_REG8_BIT(TIM4_SR,     0x5344, __READ_WRITE, __BITS_TIM4_SR);
/* TIM4 event generation register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UG          : 1;
  unsigned char             : 5;
  unsigned char TG          : 1;
} __BITS_TIM4_EGR;
#endif
__IO_REG8_BIT(TIM4_EGR,    0x5345, __WRITE, __BITS_TIM4_EGR);
/* TIM4 counter */
__IO_REG8    (TIM4_CNTR,   0x5346, __READ_WRITE);
/* TIM4 prescaler register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char PSC         : 3;
} __BITS_TIM4_PSCR;
#endif
__IO_REG8_BIT(TIM4_PSCR,   0x5347, __READ_WRITE, __BITS_TIM4_PSCR);
/* TIM4 auto-reload register */
__IO_REG8    (TIM4_ARR,    0x5348, __READ_WRITE);

iar iostm.h



#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char CEN         : 1;
  unsigned char UDIS        : 1;
  unsigned char URS         : 1;
  unsigned char OPM         : 1;
  unsigned char             : 3;
  unsigned char ARPE        : 1;
} __BITS_TIM4_CR1;
#endif
__IO_REG8_BIT(TIM4_CR1,    0x5340, __READ_WRITE, __BITS_TIM4_CR1);
/* TIM4 interrupt enable register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UIE         : 1;
  unsigned char             : 5;
  unsigned char TIE         : 1;
} __BITS_TIM4_IER;
#endif
__IO_REG8_BIT(TIM4_IER,    0x5341, __READ_WRITE, __BITS_TIM4_IER);
/* TIM4 status register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UIF         : 1;
  unsigned char             : 5;
  unsigned char TIF         : 1;
} __BITS_TIM4_SR;
#endif
__IO_REG8_BIT(TIM4_SR,     0x5342, __READ_WRITE, __BITS_TIM4_SR);
/* TIM4 event generation register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char UG          : 1;
  unsigned char             : 5;
  unsigned char TG          : 1;
} __BITS_TIM4_EGR;
#endif
__IO_REG8_BIT(TIM4_EGR,    0x5343, __WRITE, __BITS_TIM4_EGR);
/* TIM4 counter */
__IO_REG8    (TIM4_CNTR,   0x5344, __READ_WRITE);
/* TIM4 prescaler register */
#ifdef __IAR_SYSTEMS_ICC__
typedef struct
{
  unsigned char PSC         : 3;
} __BITS_TIM4_PSCR;
#endif
__IO_REG8_BIT(TIM4_PSCR,   0x5345, __READ_WRITE, __BITS_TIM4_PSCR);
/* TIM4 auto-reload register */
__IO_REG8    (TIM4_ARR,    0x5346, __READ_WRITE);

可以看一下,最后一个定义不同地址
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

1877

帖子

9

粉丝