主题 : 经验:抛砖引玉 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 26
精华: 0
发帖: 1
金钱: 10 两
威望: 1 点
综合积分: 2 分
注册时间: 2008-01-16
最后登录: 2008-01-16
楼主  发表于: 2008-01-16 17:23

 经验:抛砖引玉

我在用2410的计数器时,配置寄存器为:TCFG0=TCFG0_PRE0(0),这样的结果是把主频给改了,后来我百度了N变,才发现配置寄存器应写成:TCFG0 |=TCFG0_PRE0(0)。希望对大家有帮助,呵呵。
会当凌绝顶,一览众山小!
级别: 总版主
UID: 2
精华: 18
发帖: 1656
金钱: 13915 两
威望: 5380 点
综合积分: 3672 分
注册时间: 2008-01-01
最后登录: 2026-07-25
1楼  发表于: 2008-01-16 17:26
顶一下!学习学习!
友善之臂淘宝直销店:http://shop34928758.taobao.com

手机:13560352861(杨工),QQ:10108270
级别: 新手上路
UID: 28
精华: 0
发帖: 19
金钱: 190 两
威望: 19 点
综合积分: 38 分
注册时间: 2008-01-16
最后登录: 2008-04-03
2楼  发表于: 2008-01-16 22:13
是的,寄存器里不只是存放了TCFG0_PRE0(0),而且存放了其他的标志位,所以应该取或,匹配的数值将需要修改的位置为1,其他置为0.
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2008-01-20 20:07
引用楼主daopeng2001于2008-01-16 17:23发表的 经验:抛砖引玉 :
我在用2410的计数器时,配置寄存器为:TCFG0=TCFG0_PRE0(0),这样的结果是把主频给改了,后来我百度了N变,才发现配置寄存器应写成:TCFG0 |=TCFG0_PRE0(0)。希望对大家有帮助,呵呵。


以一般操作寄存器的写法,如果要把一个或多个bit置零并且保留其他位,可以用&=~, 象上面的例子里,可以用TCFG0 &=~0xff, (清除TCFG0[7..0])
如果是对寄存器*初始化*,可以用上面这种赋值方法,比如:
TCFG0 = (TCFG0_DZONE(0) | TCFG0_PRE1(15) | TCFG0_PRE0(0));
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."