[AVR单片机] IAR for AVR 位操作问题

[复制链接]
2011|4
 楼主| s17701332 发表于 2014-3-13 16:22 | 显示全部楼层 |阅读模式
一直以为IAR没有具体到寄存器每一位的定义,今天仔细翻了下IAR的头文件,发现在atmega128a.h的寄存器定义里面也有具体到某一位的定义,如
SFR_B_N(0x0A, UCSR0B, RXCIE0, TXCIE0, UDRIE0, RXEN0, TXEN0, UCSZ02, RXB80, TXB80) /* USART0 Control and Status Register B */
在前面的注释里面发现如下字样:
* Examples of how to use the expanded result:
* TCCR2 |= (1<<5);
* or if ENABLE_BIT_DEFINITIONS is defined   
* TCCR2 |= (1<<COM21);
* or like this:
* TCCR2_Bit5 = 1;
* or like this:
* TCCR2_COM21 = 1;
试了下发现:TCCR2_COM21 =1;编译通过而TCCR2 |= (1<< COM21); 说COM21没有定义,请问怎么使能这个位定义
airwill 发表于 2014-3-13 18:49 | 显示全部楼层
不就是个宏定义嘛
#define 就搞定了
qin552011373 发表于 2014-3-13 19:31 | 显示全部楼层
可以用宏来定义
 楼主| s17701332 发表于 2014-3-14 18:09 | 显示全部楼层
你们理解错了,我是说使能IAR中自带的寄存器位设定,不过已经找到了,在opition->general opition->sysytem 里面有个Enable bit definitions
沧海一粒 发表于 2016-6-19 11:51 | 显示全部楼层
谢谢!楼主的帖子,使我遇到同样的问题 得解决!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部