智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: longforljy
打印 上一主题 下一主题

[编程类] 急急急急急急急急急急急!!新手求助!!!!!!大虾们快来看看啊!!!!!

  [复制链接]

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
11#
发表于 2010-1-10 20:16:05 | 只看该作者
其实初始化代码都是差不多的,搞懂寄存器的作用和奏效就行了,同学加油。
回复

使用道具 举报

1

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
QQ
威望
258
贡献
22
兑换币
0
注册时间
2009-11-22
在线时间
17 小时
12#
发表于 2010-1-10 20:57:15 | 只看该作者
已经揭穿
回复

使用道具 举报

3

主题

55

帖子

0

精华

高级会员

Rank: 4

积分
580
威望
335
贡献
41
兑换币
24
注册时间
2010-1-1
在线时间
102 小时
13#
发表于 2010-1-10 21:03:09 | 只看该作者
揭穿+1
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
14#
 楼主| 发表于 2010-1-11 00:48:07 | 只看该作者
努力ing
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
15#
 楼主| 发表于 2010-1-11 02:43:46 | 只看该作者
搞了一个晚上,还是搞不掂...

// PLL初始化子程序   BUS Clock=40M
void setbusclock(void)
{   
    CLKSEL=0X00;    //disengage PLL to system
    PLLCTL_PLLON=1;   //turn on PLL
    SYNR=4;         
    REFDV=1;          //pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
    _asm(nop);          //BUS CLOCK=40M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;
}
//PWM
void InitPWM(void)
{
    PWME=0x00;//PWM输出禁止
    PWMCTL=0xf0;//高八位置1,PWM通道级连,PWM1、PWM3、PWM5、PWM7为对应16bPWM输出
    PWMPOL=0xaa;//对应通道输出
    PWMCAE=0x00;//输出波形左对齐,即从周期原点开始计时
   
    PWMPRCLK=0x44;//预分频  CLOCKA=40MHZ/16=2.5MHZ,CLOCKB=40MHZ/16=2.5MHZ
   
    PWMSCLA=0x64;//CLOCKSA=CLOCKA/(2*100)=12.5kHZ
    PWMSCLB=0x64;//CLOCKSB=CLOCKB/(2*100)=12.5kHZ
    //0,1要求是100hz,则输出频率=时钟频率/(x+1)=100hz,得x=124,换成16进制0x7c
    PWMPER1=0x7c;
    //3,5要求是10khz,得x=249,即0xF9,7不做要求
    PWMPER3=0xF9;
    PWMPER5=0xF9;
    PWMCLK=0x82;//PWM1选择CLOCKSA,PWM5选择CLOCKA,PWM3选择CLOCKB,PWM7选择CLOCKSB        
    PWME=0x2a;//1,3,5输出使能
    PACTL=0x50;// 脉冲累加器使能,事件计数模式,上升沿计数,中断禁止      //此处,使能16位脉冲累加器,对PT7口计数.不知道该怎么写

//实时中断RTI
//------------------------------------------------------------
void InitRTI(void)
{
    RTICTL=0x6c;   //时间T=(1/40MHZ)*(12.5*2^15)=10.24ms,12.5取13,所以得T=10.64ms
    CRGINT=0x80;    //开实时中断
}



//模数计数器
void SetMDC(void)
{
      //启用模数计数器,并实现自定义的时钟变量1s自增1.   这个也不怎么懂~~~~大虾们打救
}
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
16#
 楼主| 发表于 2010-1-11 02:44:59 | 只看该作者
1.将总线时钟(BUSCLOCK)设置为40M.
   2.PWM输出使能。通道0,1级联,频率100hz;
     通道2,3级联,频率10khz;
     通道4,5级联,频率10khz;
   3.使能16位脉冲累加器,对PT7口计数.
   4.启用实时中断RTI,设置周期为10.24ms
   5.启用模数计数器,并实现自定义的时钟变量1s自增1.

这是要求,补充下

不行了,睡觉哩
回复

使用道具 举报

49

主题

489

帖子

0

精华

金牌会员

董事长

Rank: 6Rank: 6

积分
2370
威望
754
贡献
1130
兑换币
0
注册时间
2009-10-30
在线时间
243 小时
17#
发表于 2010-1-11 12:17:32 | 只看该作者
参考参考。。。
回复

使用道具 举报

140

主题

1016

帖子

2

精华

功勋会员

智能车八届元老!武汉岱默科技创始人!

Rank: 10Rank: 10Rank: 10

积分
32723

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
4239
贡献
25778
兑换币
1456
注册时间
2009-12-9
在线时间
1353 小时
18#
发表于 2010-1-13 20:57:48 | 只看该作者
学习了
回复

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
威望
223
贡献
43
兑换币
0
注册时间
2009-12-12
在线时间
3 小时
19#
发表于 2010-1-16 13:00:58 | 只看该作者
void MDCInit()

{

  MCCTL = MCCTL&0xfb;//模数计数器禁止运行

  MCCTL = 0xe1;       //允许中断,模数计数方式 分频常数为4  

  MCCTL = MCCTL|0X04;

  MCCNT = 25*nF; //(1/25M)*100*nF =4us*nF

  MCCTL = MCCTL|0x08 ; //把模数常数寄存器的值加载到模数计数器FLMC;

}
错了,XS128中不适用
回复

使用道具 举报

0

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
491
威望
322
贡献
43
兑换币
20
注册时间
2009-10-26
在线时间
63 小时
20#
发表于 2010-3-16 21:52:52 | 只看该作者
谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 13:42 , Processed in 0.124656 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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