智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6614|回复: 25
打印 上一主题 下一主题

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

  [复制链接]

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
跳转到指定楼层
1#
发表于 2010-1-10 12:30:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献

硬件平台:MC9S12XS128 80QFP封装

软件平台:codewarrier v4.7以上版本

要求:


1.
将总线时钟(BUSCLOCK)设置为40M.


2.PWM
输出使能。通道01级联,频率100hz



通道23级联,频率10khz



通道45级联,频率10khz


3.
使能16位脉冲累加器,对PT7口计数.


4.
启用实时中断RTI,设置周期为10.24ms


5.
启用模数计数器,并实现自定义的时钟变量1s自增1.

说明:最好每一段程序都注释上自己的理解,尽量实现上述功能。



这个是要求.先说明,并不是我想偷懒或者取巧.由于1月10号,就是今天要交了,实在没办法.有人会问之前我忙什么去了.这里我再解释一下,因为之前第一次使用51系列的单片机参加了学院的一次小车比赛,而比赛是在1月2号,我很认真的完成了这次比赛,并获得了好成绩.之后1月2号到现在都是忙着期末考试啦.学院实在是太没人性了,希望大虾们帮帮忙啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我考完事后一定会认真学习这款单片机的,我不会浪费大虾们的帮助的!!!谢谢了

最佳答案

查看完整内容

都是自己用的,有点乱,跟你要求的有点出入,不过修改下应该能用的。 另外提醒下,PWM做初始化的时候,几个通道的clock不一定相同的。 bus clock、clockA、clockB、clocksB,所以级联的时候要考虑好。

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
2#
发表于 2010-1-10 12:30:27 | 只看该作者
  1. void InitBusCLK_40M(void)
  2. {   
  3.     CLKSEL=0X00;    //disengage PLL to system
  4.     PLLCTL_PLLON=1;   //turn on PLL
  5.     SYNR =0xc0 | 0x04;                        
  6.     REFDV=0xc0 | 0x01;
  7.     POSTDIV=0x00;       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
  8.     _asm(nop);          //BUS CLOCK=pll clock/2=40M
  9.     _asm(nop);
  10.     while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
  11.     CLKSEL_PLLSEL =1;          //engage PLL to system;
  12. }

  13. void InitPWM(void){
  14.     PWME=0x00;//PWM禁止
  15.     PWMCTL=0xf0;//PWM通道级连,PWM1、PWM3、PWM5、PWM7为对应16bPWM输出
  16.     PWMPOL=0xaa;//对应通道输出
  17.     PWMCAE=0x00;//输出波形左对齐
  18.     PWMPRCLK=0x21;//CLOCKA=40MHZ/2=20MHZ,CLOCKB=40MHZ/4=10MHZ
  19.     PWMSCLB=0x5;//CLOCKSB=CLOCKB/(2*5)=1MHZ
  20.     PWMCLK=0x08;//PWM1、PWM5选择CLOCKA,PWM3选择CLOCKSB,PWM7选择CLOCKB
  21.     PWMPER01=MotorCyc;// 马达PWM周期
  22.     PWMPER45=MotorCyc;// 马达PWM周期
  23.     PWMPER23=RudderCyc;//舵机PWM周期         
  24.     //设置马达初始空比,实时占空比由速度控制函数输出设置
  25.     PWMDTY01=0;   //MotorOUT1;
  26.     PWMDTY45=0;   //MotorOUT2;
  27.     //设置舵机初始占空比,舵机摆正,实时占空比由方向控制函数输出设置
  28.     PWMDTY23=MiddleAngle;
  29.     //PWMSDN=0x00;//PWM紧急关段初始设置
  30.     PWME_PWME1=0;//PWM1通道使能
  31.     PWME_PWME5=0;//PWM5通道使能
  32.     PWME_PWME3=1;//PWM3通道使能
  33. }


  34. //-----------------------------------------------------------
  35. //脉冲累加器初始化函数,测速编码输入到PT7**
  36. //-----------------------------------------------------------
  37. void  InitPulesA(void){
  38.   PACTL=0x50;// 脉冲累加器使能,事件计数模式,上升沿计数,中断禁止
  39. }


  40. //------------------------------------------------------------
  41. //初始化实时中断RTI,时间T=100MS,F=16MHZ/(1.6*10^6)
  42. //------------------------------------------------------------
  43. void InitRTI(void) {
  44.     RTICTL=0xef;
  45.     CRGINT_RTIE=1;
  46. }


  47. void MDCInit()
  48. {
  49.   MCCTL = MCCTL&0xfb;//模数计数器禁止运行
  50.   MCCTL = 0xe1;       //允许中断,模数计数方式 分频常数为4  
  51.   MCCTL = MCCTL|0X04;
  52.   MCCNT = 25*nF; //(1/25M)*100*nF =4us*nF
  53.   MCCTL = MCCTL|0x08 ; //把模数常数寄存器的值加载到模数计数器FLMC;
  54. }
复制代码
都是自己用的,有点乱,跟你要求的有点出入,不过修改下应该能用的。

另外提醒下,PWM做初始化的时候,几个通道的clock不一定相同的。

bus clock、clockA、clockB、clocksB,所以级联的时候要考虑好。

评分

2

查看全部评分

回复

使用道具 举报

8

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1349
QQ
威望
310
贡献
915
兑换币
0
注册时间
2009-12-21
在线时间
62 小时
3#
发表于 2010-1-10 15:04:51 | 只看该作者
回复

使用道具 举报

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
4#
发表于 2010-1-10 15:16:33 | 只看该作者
回复 3# shangshu


    哈哈哈,shangshu你知不知道这样有灌水的嫌疑。。。
回复

使用道具 举报

3

主题

55

帖子

0

精华

高级会员

Rank: 4

积分
580
威望
335
贡献
41
兑换币
24
注册时间
2010-1-1
在线时间
102 小时
5#
发表于 2010-1-10 15:21:36 | 只看该作者
LZ作弊。。。
回复

使用道具 举报

8

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1349
QQ
威望
310
贡献
915
兑换币
0
注册时间
2009-12-21
在线时间
62 小时
6#
发表于 2010-1-10 15:22:35 | 只看该作者
如果这样有嫌疑的话,就把表情取消了撒。表情也代表一种想法。
回复

使用道具 举报

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
7#
发表于 2010-1-10 15:28:07 | 只看该作者
你的板子测试得如何了。能用不。
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
8#
 楼主| 发表于 2010-1-10 19:46:54 | 只看该作者
晕...怎么直接点别人回复框下面的回复按钮回复的时候,看不见的....哪里去了
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
9#
 楼主| 发表于 2010-1-10 19:47:15 | 只看该作者
话说这个悬赏怎么给的?...
回复

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
10#
 楼主| 发表于 2010-1-10 19:49:26 | 只看该作者
今天晚上有空的话我想还是得自己看看,稍微修改下源代码...要不肯定一下子就被揭穿
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 21:19 , Processed in 0.086426 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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