智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4348|回复: 11
打印 上一主题 下一主题

XS128中锁相环的作用?为什么设置pwm用它呢?小白求教!!!

[复制链接]

17

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1443
QQ
威望
674
贡献
293
兑换币
391
注册时间
2013-1-13
在线时间
238 小时
毕业学校
工业大学
跳转到指定楼层
1#
发表于 2013-3-28 21:29:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献

最佳答案

查看完整内容

楼主不用锁相环照样可以调pwm,不倍频就是了

2

主题

479

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
16171

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章资源大师奖章

威望
9831
贡献
3996
兑换币
2051
注册时间
2012-1-17
在线时间
1172 小时
2#
发表于 2013-3-28 21:29:21 | 只看该作者
楼主不用锁相环照样可以调pwm,不倍频就是了
回复

使用道具 举报

17

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1443
QQ
威望
674
贡献
293
兑换币
391
注册时间
2013-1-13
在线时间
238 小时
毕业学校
工业大学
3#
 楼主| 发表于 2013-3-28 22:18:43 | 只看该作者
seakid 发表于 2013-3-28 22:02
楼主不用锁相环照样可以调pwm,不倍频就是了

刚有点头绪,谢谢啦、、、!
回复

使用道具 举报

2

主题

479

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
16171

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章资源大师奖章

威望
9831
贡献
3996
兑换币
2051
注册时间
2012-1-17
在线时间
1172 小时
4#
发表于 2013-3-29 00:16:57 | 只看该作者
楼主诶,我调侃的啊,,(-"-)
做智能车哪有不pll的。pll的频率将是总线的2倍
通过pll将主频倍到64Mhz,80Mhz之类的
然后将pll倍频后的总线时钟作为其他各个模块的时钟,比如pwm.
pll后调pwm无非是被除基数不一样罢了

这贡献拿的,哎,,,,怎么那么心慌啊
回复

使用道具 举报

1

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2186
威望
1101
贡献
649
兑换币
592
注册时间
2012-2-24
在线时间
218 小时
5#
发表于 2013-3-29 08:16:28 | 只看该作者
哈哈,楼上心慌了
回复

使用道具 举报

24

主题

1175

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5379
威望
2669
贡献
1706
兑换币
1811
注册时间
2012-10-29
在线时间
502 小时
6#
发表于 2013-3-29 14:15:45 | 只看该作者
pll是倍频用的,通常外部输入时钟频率不能太高,128基本输入为16M,但为了能达到较高的工作频率,设置了具有反馈调节的PLL以稳定输出倍频信号。并不是需要调PWM时才需要设置pll,一般只要是个工程,都会用到pll
回复

使用道具 举报

17

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1443
QQ
威望
674
贡献
293
兑换币
391
注册时间
2013-1-13
在线时间
238 小时
毕业学校
工业大学
7#
 楼主| 发表于 2013-4-3 15:04:26 | 只看该作者
seakid 发表于 2013-3-29 00:16
楼主诶,我调侃的啊,,(-"-)
做智能车哪有不pll的。pll的频率将是总线的2倍
通过pll将主频倍到64Mhz,80M ...

小白嘛  就是只学习一个简单的PWM  然后不用PLL的也是可以的,这两天对PLL认识了一下感觉大家说的很对,今天想请教一个ATD的问题  


void INIT_AD(void)
{
ATD0CTL2 = 0x40;  //启动A/D模块,快速清零,禁止中断
ATD0CTL1_SRES=2;  //选用12位模数转换
ATD0CTL3 = 0x88;   //每次只转换一个通道
ATD0CTL4 = 0x07;   //AD模块时钟频率为8MHz
}
这里只对ATD0CTL1的SRES设置,其他的位是怎样的?这个中断设置的有效吗?
void main(void) {
DisableInterrupts;
  INIT_PLL();
  INIT_AD();
  LEDCPU_dir=1;
EnableInterrupts;
主函数里有中断,所以不太清楚,小白求教。
回复

使用道具 举报

17

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1443
QQ
威望
674
贡献
293
兑换币
391
注册时间
2013-1-13
在线时间
238 小时
毕业学校
工业大学
8#
 楼主| 发表于 2013-4-3 15:07:06 | 只看该作者
Neozoic 发表于 2013-3-29 14:15
pll是倍频用的,通常外部输入时钟频率不能太高,128基本输入为16M,但为了能达到较高的工作频率,设置了具有 ...

void INIT_AD(void)
{
ATD0CTL2 = 0x40;  //启动A/D模块,快速清零,禁止中断
ATD0CTL1_SRES=2;  //选用12位模数转换
ATD0CTL3 = 0x88;   //每次只转换一个通道
ATD0CTL4 = 0x07;   //AD模块时钟频率为8MHz
}
这里只对ATD0CTL1的SRES设置,其他的位是怎样的?这个中断设置的有效吗?
void main(void) {
DisableInterrupts;
  INIT_PLL();
  INIT_AD();
  LEDCPU_dir=1;
EnableInterrupts;
主函数里有中断,所以不太清楚,小白求教。
回复

使用道具 举报

24

主题

1175

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5379
威望
2669
贡献
1706
兑换币
1811
注册时间
2012-10-29
在线时间
502 小时
9#
发表于 2013-4-3 21:20:26 | 只看该作者
本帖最后由 Neozoic 于 2013-4-3 21:23 编辑
HIT120220 发表于 2013-4-3 15:07
void INIT_AD(void)
{
ATD0CTL2 = 0x40;  //启动A/D模块,快速清零,禁止中断

主函数里的是使能中断,基本在初始化之后都会这样,没配置的位都默认为复位后的初始值,具体是0还是1需要查阅datasheet,对于同时发生的中断,要使其优先级的高低来判断其执行的先后
回复

使用道具 举报

1

主题

42

帖子

0

精华

高级会员

Rank: 4

积分
608
威望
346
贡献
162
兑换币
167
注册时间
2012-3-15
在线时间
50 小时
10#
发表于 2013-4-4 00:05:07 | 只看该作者
EnableInterrupts;  这是开总中断吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 10:59 , Processed in 0.052062 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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