打印

求分析求解答

[复制链接]
441|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在看例程的时候,有一个语句没看懂,求分析:
TACTL = TASSEL_1 + TACLR;


其中:
#define TASSEL_1               (1*0x100u)           /* Timer A clock source select: 1 - ACLK  */   
#define TACLR                  (0x0004)       /* Timer A counter clear */

虽然有注释,但是没看懂,为什么 (1*0x100u) + (0x0004)   得到的是什么东西?这两个可以相加的吗?谢谢解答!


TACTL寄存器配置如下


相关帖子

沙发
dirtwillfly| | 2016-6-24 16:25 | 只看该作者
这些都是宏定义
#define TASSEL_1               (1*0x100u)      //意思就是0000 0001 0000 0000,就是位9和8是01,选择了ACLK

使用特权

评论回复
板凳
dirtwillfly| | 2016-6-24 16:26 | 只看该作者
同样
#define TACLR                  (0x0004)  //相当于0000 0000 0000 0100,二进制位2置1

使用特权

评论回复
地板
火山LF|  楼主 | 2016-6-24 19:01 | 只看该作者
dirtwillfly 发表于 2016-6-24 16:25
这些都是宏定义
#define TASSEL_1               (1*0x100u)      //意思就是0000 0001 0000 0000,就是位9 ...

那15*0x1000u这个呢? 我脑袋有点转不过来

使用特权

评论回复
5
dirtwillfly| | 2016-6-24 21:17 | 只看该作者
火山LF 发表于 2016-6-24 19:01
那15*0x1000u这个呢? 我脑袋有点转不过来

哪里有15*0x1000u?
超过8的都很少

使用特权

评论回复
6
火山LF|  楼主 | 2016-6-25 08:56 | 只看该作者
dirtwillfly 发表于 2016-6-24 21:17
哪里有15*0x1000u?
超过8的都很少

小灰灰,下面是一个头文件的定义:
#define INCH_0                 (0*0x1000u)    /* Selects Channel 0 */
#define INCH_1                 (1*0x1000u)    /* Selects Channel 1 */
#define INCH_2                 (2*0x1000u)    /* Selects Channel 2 */
#define INCH_3                 (3*0x1000u)    /* Selects Channel 3 */
#define INCH_4                 (4*0x1000u)    /* Selects Channel 4 */
#define INCH_5                 (5*0x1000u)    /* Selects Channel 5 */
#define INCH_6                 (6*0x1000u)    /* Selects Channel 6 */
#define INCH_7                 (7*0x1000u)    /* Selects Channel 7 */
#define INCH_8                 (8*0x1000u)    /* Selects Channel 8 */
#define INCH_9                 (9*0x1000u)    /* Selects Channel 9 */
#define INCH_10                (10*0x1000u)   /* Selects Channel 10 */
#define INCH_11                (11*0x1000u)   /* Selects Channel 11 */
#define INCH_12                (12*0x1000u)   /* Selects Channel 12 */
#define INCH_13                (13*0x1000u)   /* Selects Channel 13 */
#define INCH_14                (14*0x1000u)   /* Selects Channel 14 */
#define INCH_15                (15*0x1000u)   /* Selects Channel 15 */

因为芯片是16位的,所以就有,这个 (15*0x1000u)的怎么看啊?

使用特权

评论回复
7
dirtwillfly| | 2016-6-25 10:30 | 只看该作者
火山LF 发表于 2016-6-25 08:56
小灰灰,下面是一个头文件的定义:
#define INCH_0                 (0*0x1000u)    /* Selects Channel  ...

还真没仔细看过这个。
你看看就知道了阿,定义的就是0001  0000 0000 0000这个32位数的高4位

使用特权

评论回复
8
chuntian2016| | 2016-6-25 18:19 | 只看该作者
这个系统内部会自激处理的

使用特权

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

本版积分规则

88

主题

816

帖子

16

粉丝