打印
[AVR单片机]

求助AVR单片机TWI的问题

[复制链接]
3700|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanglintc|  楼主 | 2011-4-17 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhanglintc|  楼主 | 2011-4-17 20:32 | 只看该作者
难道,难道是把这两位清零的意思??

使用特权

评论回复
板凳
CIOneTwo| | 2011-4-18 15:41 | 只看该作者
是不是写错了啊,那两位置位不是多此一举么,应该直接就是TWCR=(1<<TWEN)|(1<<TWIE);吧。

使用特权

评论回复
地板
joyme| | 2011-4-19 15:47 | 只看该作者
就是置位TWEN/TWIE,前者TW模块使能,后者使能中断,用|=是不影响除这两位的其他位,这么简单的位操作都看不懂,可要好好温习一下c语言了

使用特权

评论回复
5
zhanglintc|  楼主 | 2011-4-19 21:26 | 只看该作者
就是置位TWEN/TWIE,前者TW模块使能,后者使能中断,用|=是不影响除这两位的其他位,这么简单的位操作都看不懂,可要好好温习一下c语言了
joyme 发表于 2011-4-19 15:47


没接触过这样的写法啊~ 比较菜。

1<<TWEN是把TWEN左移吧? 左移了不就是清零了吗?怎么能置位的啊?

使用特权

评论回复
6
joyme| | 2011-4-20 09:02 | 只看该作者
看头文件里TWEN的定义吧,
val |= (1<<n)即将val的低n位置为1
val &= ~(1<<n)即将val的第n位清零 (val为char则n<8,一次类推)
这两个语句都不会影响除n位val的其他位

使用特权

评论回复
7
wc骑鱼士| | 2011-5-15 10:52 | 只看该作者
6楼的应该没错,可5楼的大哥c语言中没有这个吧,TWCR|=(1<<TWEN)|(1<<TWIE);这应该是avr单片机中特有的吧?我现在在自学avr,也是菜鸟,求解。:)

使用特权

评论回复
8
wc骑鱼士| | 2011-5-15 10:57 | 只看该作者
在问你们一下,把avr单片机的硬件都看完了,还应该看什么啊?求解?

使用特权

评论回复
9
chenczy| | 2011-5-16 15:39 | 只看该作者
还要自己做一个项目,只有在实际应用中才能更好地得到提高。不自己动手搞,看再多的书也是零

使用特权

评论回复
10
wc骑鱼士| | 2011-5-18 19:23 | 只看该作者
恩 谢了啊

使用特权

评论回复
11
wc骑鱼士| | 2011-5-18 19:26 | 只看该作者
请问avr常用函数包在哪可以下载啊?

使用特权

评论回复
12
hotpower| | 2011-5-19 00:12 | 只看该作者
13
uabuntsu| | 2011-7-13 12:10 | 只看该作者
io.h头文件中定义了寄存器标号代表的具体数字。

使用特权

评论回复
14
jamin.x| | 2011-9-27 18:38 | 只看该作者
大家一起努力学习吧

使用特权

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

本版积分规则

0

主题

23

帖子

0

粉丝