智能车制作
标题:
望高手指导脉冲周期测量程序
[打印本页]
作者:
caoning10
时间:
2011-3-27 10:11
标题:
望高手指导脉冲周期测量程序
我使用
霍尔元件
测速,分辨率比较低使用脉冲累加的方法测速精度会比较差,想用
脉冲周期测量
的方法测量
datasheet看了好久TIM模块周期测量的介绍没有 希望大侠给我点指导
作者:
ghae
时间:
2011-3-28 09:51
这个貌似不用程序吧,用一个数字示波器就可以测出来波形的也可以看得出来周期,电压电流也都能看出来!
作者:
ghae
时间:
2011-3-28 09:52
timmer模块是用来定时用的
作者:
ghae
时间:
2011-3-28 09:59
#include<hidef.h>
#include<mc9s12xs128.h>
#pragma LINK_INFO DERIVATIV"mc9s12xs128b"
#define PITTIME 200000//设定为1000毫秒定时
uchar count=0,t=0;
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 PWM_Init(void)
{
PWMPOL=0X20;
PWMCAE=0X00;
PWMCTL=0X00;
PWMPRCLK=0X20;
PWMSCLA=0X05;
PWMPER5=0X08;
}
void PIT_Init(void)//定时中断初始化函数1000MS定时中断设置
{
PITCFLMT_PITE=1;
PITFLT=1;
PITCE=1;
PITINTE=1;
PITMTLD0=160-1;
PITLD0=PITTIME-1;
}
//脉冲累加器初始化,实现脉冲测速。
//PIT7口
void initPACA(void)
{
PACTL=0X50;//PT7上升沿脉冲计数
PACNT=0X00;//累加器初始值
}
void main(void)
{
EnableInterrupts;
setbusclock();
PIT_Init();
PWM_Init();
initPACA();
for(;;)
{
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT7Interrupt(void)
{ PORTB^=0xff;
PITTF_PTF0=1;
count++;
t=PACNT;
}
作者:
linyujin
时间:
2011-4-24 11:13
顶一个!
作者:
天涯小极莫
时间:
2011-8-1 14:21
PIT 算法,想探讨下,如何做10us中断;感觉2的24次,来做中断比较麻烦?
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2