天嵌 ARM开发社区

 找回密码
 注册
查看: 3451|回复: 4

请教一个语句rTCFG0 &= ~(0xff<<8);

[复制链接]
huajiji 发表于 2010-3-6 10:21:39 | 显示全部楼层 |阅读模式
本帖最后由 huajiji 于 2010-3-6 10:24 编辑

请教这个语句rTCFG0 &= ~(0xff<<8);
手册里写的rTCFG0的初值为0x00000000.
0xff,再左移8位,变为0xff00.再取反,又变为了0x00ff。
然后0x00000000和0x00ff相与,最后结果不是又变成0x00000000了吗?
这样子做又有什么意义呢?
希望版主帮我解答一下这个小小的问题。不胜感激!
 楼主| huajiji 发表于 2010-3-6 10:58:44 | 显示全部楼层
还有一个语句也请麻烦看一下。U32 val = (PCLK>>3)/1000-1;这也是2440lib.c里的一个语句。我查了整个文件,都没有找到PCLK的值是多少,那这一个又是怎么做运算的呢?
亚瑟王 发表于 2010-3-8 14:30:41 | 显示全部楼层
说明一下,建议下次告诉是什么代码中的,不然不好给你找源头。
1、rTCFG0的初值是0x0,但是在程序中间是设置过来的。
2、PCLK的初值在main.c的cal_cpu_bus_clk()函数中定义的。
 楼主| huajiji 发表于 2010-3-8 18:11:10 | 显示全部楼层
本帖最后由 huajiji 于 2010-3-8 18:25 编辑

3# 亚瑟王
嗯,好的,我下次会注意写上代码的出处了。呵呵。这两个语句都是在2440lib.c里Delay()函数里的头两个语句。
再问一下亚瑟王,rTCFG0是在哪里设置的值呢?在2440addr.h有定义
#define rTCFG0  (*(volatile unsigned *)0x51000000)        //Timer 0 configuration
这是定义它的地址吧?
但是不知它的值是在哪里有定义。
亚瑟王 发表于 2010-3-9 11:38:02 | 显示全部楼层
你搜索一下这个代码就知道了。
在2440lib.c中的27、28、548和549行都有定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-6 16:26 , Processed in 1.017513 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表