智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4727|回复: 8
打印 上一主题 下一主题

[分享] xs128测速程序

[复制链接]

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
400
威望
283
贡献
107
兑换币
0
注册时间
2011-2-14
在线时间
5 小时
跳转到指定楼层
1#
发表于 2011-3-16 22:15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<hidef.h>
                   #include<mc9s12xs128.h>
                   #pragma LINK_INFO DERIVATIV"mc9s12xs128b"
                   #define PITTIME 2000//设定为10毫秒定时
                    uchar count=0,m;
                    void setbusclock(void)//32MHZ外部时钟为16MHZ
                   {
                    CLKSEL=0X00;//
                    PLLCTL_PLLON=1;//打开时钟
                    SYNR=0X40|0X03;
                    REFDV=0X80|0X01;
                              //SYNR=1;//PLLCLK=2*FOSC*(SYNR+1)/(REFDV+1)
                              //REFDV=1;
                    POSTDIV=0X00;//4:0,FPLL=FVCO/(2XPOSTDIV)
                    _asm(nop);//BUS CLOCK=16M
                    _asm(nop);
                    while(!(CRGFLG_LOCK));//WHEN PLL IS STEADY ,THEN USE IT
                    CLKSEL_PLLSEL=1;//engage PLL system;
                               }  
               


                   void PIT_Init(void)//定时中断初始化函数10MS定时中断设置
              {
                 PITCFLMT_PITE=1;
                 PITFLT=1;
                 PITCE=1;
                 PITINTE=1;
                 PITMTLD0=160-1;
                 PITLD0=PITTIME-1;
                          }
                            void PWM_Init(void)
            {
                 PWMPOL=0X20;//脉冲先高后低
                 PWMCLK=0X20;//使用SA时钟源
                 PWMPRCLK=0X07;//时钟A为总线8分频
                 PWMCAE=0X00;//通道5为左对齐输出模式
                 PWMCTL=0X00;//单独使用通道5
                 PWMSCLA=0X05;//clockSA=clockA/(2*PWMSCLA)为3KHZ
                 PWMPER5=0X64;//设定周期
                                }
                    void Init_PT4_Capture()
              {
         
                  TIOS=0x00;          //输入捕捉
                  TCTL3=0x02;         //通道4下降沿触发
                  TSCR2=0X07;         //分频,用来给TCNT作时间参考,这里没有意义
   
                  TSCR1=0x80;         //Timer Enable
                  TIE=0X10;           //初始化定时器开启
                                  }   
     
                   void main(void)
              {
                 PACTL_PAEN=1;
                 DisableInterrupts;
                               //setbusclock();

                 PIT_Init();
                 PWM_Init();
                 Init_PT4_Capture();
  
                 for(;;)  ;

                            }
                 #pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区
                 void interrupt 66 PIT0_ISR(void)                        
             {           
                                                                                          
                        }




    不知道对不对,谁懂的帮我改改谢谢!!!!

4

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
390
威望
271
贡献
49
兑换币
0
注册时间
2010-12-6
在线时间
35 小时
2#
发表于 2011-4-18 19:04:46 | 只看该作者
学习下~~~
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2604
威望
1500
贡献
760
兑换币
525
注册时间
2011-9-7
在线时间
172 小时
3#
发表于 2012-2-17 13:29:09 | 只看该作者
回复 支持 反对

使用道具 举报

4

主题

51

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1653
威望
919
贡献
398
兑换币
166
注册时间
2012-2-14
在线时间
168 小时
毕业学校
东北林业大学
4#
发表于 2012-2-20 14:18:44 | 只看该作者
由“ #define PITTIME 2000”怎么确定“设定为10毫秒定时”???求大侠帮助
回复 支持 反对

使用道具 举报

4

主题

51

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1653
威望
919
贡献
398
兑换币
166
注册时间
2012-2-14
在线时间
168 小时
毕业学校
东北林业大学
5#
发表于 2012-2-20 14:19:54 | 只看该作者
由“ #define PITTIME 2000”怎么确定“设定为10毫秒定时”???求大侠解释
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

高级会员

Rank: 4

积分
536
威望
346
贡献
106
兑换币
0
注册时间
2012-2-15
在线时间
42 小时
6#
发表于 2012-3-4 20:50:02 | 只看该作者
BusClock/八位定时器的值,你的是PITMTLD0,得到的周期乘上十六位定时器值,你的是PITLD0,得出时间就是你定时的时间
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
威望
160
贡献
30
兑换币
0
注册时间
2012-2-13
在线时间
9 小时
毕业学校
家里
7#
发表于 2012-4-7 09:42:26 | 只看该作者
w1u1l1i1 发表于 2012-2-20 14:18
由“ #define PITTIME 2000”怎么确定“设定为10毫秒定时”???求大侠帮助

可以随便设定的 在0~65536之间的数值
回复 支持 反对

使用道具 举报

4

主题

51

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1653
威望
919
贡献
398
兑换币
166
注册时间
2012-2-14
在线时间
168 小时
毕业学校
东北林业大学
8#
发表于 2012-4-8 21:24:09 | 只看该作者
欤緈諨侑染 发表于 2012-4-7 09:42
可以随便设定的 在0~65536之间的数值

但是那个10ms怎么算出来的啊?求教
回复 支持 反对

使用道具 举报

17

主题

280

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2298

优秀会员奖章活跃会员奖章

威望
1496
贡献
218
兑换币
575
注册时间
2012-9-26
在线时间
292 小时
9#
发表于 2013-6-26 09:32:21 | 只看该作者
用PA模块呀
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 18:32 , Processed in 0.049807 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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