打印
[AVR单片机]

IAR for AVR 位操作问题

[复制链接]
1677|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

使用特权

评论回复
5
沧海一粒| | 2016-6-19 11:51 | 只看该作者
谢谢!楼主的帖子,使我遇到同样的问题 得解决!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

1

粉丝