智能车制作

标题: 请教PWM级联通道问题 [打印本页]

作者: yanyuan20046    时间: 2012-4-14 17:27
标题: 请教PWM级联通道问题
级联的代码没看明白,请教高人

要实现01,23,45分别级联,
代码是这样的:
        PWMCTL = (1<<CON23)|(1<<CON45)|(1<<CON01);

这是为什么?
我是这样理解的:
1分别左移CON23,CON45,CON01。再“或”运算。
但是:CON23,CON45,CON01是多少呢?初始值是零吗?
如果是零PWMCTL 算出来也不对啊。

不知道我那个地方理解错了,希望指点一下。


作者: 凌心    时间: 2012-4-14 18:36
你查找一下CON*的定义。应该可以找到。
作者: yanyuan20046    时间: 2012-4-14 21:34
凌心 发表于 2012-4-14 18:36
你查找一下CON*的定义。应该可以找到。

多谢指点!
[attach]22853[/attach]

技术文档是这样的,代码里的CON*难道是指CON*所在的第X位吗?
CON45指向“6”,CON23指向“5”,CON23指向了“4”

PWMCTL = (1<<CON23)|(1<<CON45)|(1<<CON01);

1分别左移6位,5位,4位再“或”运算

这样PWMCTL 倒是符合了,但位运算好像没有这样的运算规则啊

此外,在另一条代码里,

DDRT|=(1<<DR1)|(1<<DR2);

依照这样的运算规则,算出来又不对了。且DR*甚至不是寄存器的位,似乎是自己设置的。

希望有进一步的指点!

作者: 凌心    时间: 2012-4-14 22:04
yanyuan20046 发表于 2012-4-14 21:34
多谢指点!

你查一下代码里面对这个变量的定义及赋值。如果不定义应该不可以直接用的
作者: yanyuan20046    时间: 2012-4-15 09:15
凌心 发表于 2012-4-14 22:04
你查一下代码里面对这个变量的定义及赋值。如果不定义应该不可以直接用的

多谢!已经解决了






欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2