标题:
新手求助:关于HCS12d64的捕获
[打印本页]
作者:
haiyanfreescale
时间:
2009-12-25 12:16
标题:
新手求助:关于HCS12d64的捕获
大家好,最近在调试D64的底层驱动,在调捕获功能时,将
D64
的
CAP
接口TC4采集
PWM1
模块输出的波形,PWM波的周期为16MS,占空比为50%,现在可以通过示波器从相应的CAP口观察到波形,但是TC4的值一直是0;
这个问题困扰了很久,一直不知道怎么办,下面把我的程序贴出来,大家看看有没有错误。
PWM波的初始化
void InitPWM (void)
{
/*PWME = 0x00;
PWMCTL = 0x00;
PWMCLK = 0x00; //通道0、1、4、5选择clockA,通道2、3、6、7选择clockB
PWMPRCLK = 0x77; //clockA = 总线时钟/128;clockB= 总线时钟/128;
PWMPOL = 0xFF; //所有PWM输出起始都为高电平
PWMCAE = 0x00; //左对齐
PWME = 0x01; //使能通道0
PWMCNT0 = 0;
PWMCNT2 = 0;
PWMCNT4 = 0;
PWMPER0 = 0XFF; //PWM0周期=128/8000000*255=4ms
PWMPER2 = 0xFF;
PWMDTY0 = 0x80; //PWM0占空比=128/255=0.5
PWMDTY2 = 0xa0; //清0通道channel计数器 */
PWME = 0x00; // 关闭所有通道的PWM输出
PWMCTL = 0xf0; // 通道01级联
PWMCLK = 0x00; //选择时钟来源,通道0145使用clockA,通道2367使用clockB
PWMPRCLK = 0x77; // clockA/clockB预分频控制clockA=clockB=bus/128=125KHz
PWMPOL = 0xFF; //所有PWM输出起始都为高电平,
PWMCAE = 0x00; //通道PWM输出左对齐
PWME = 0xff; //使能所有通道0
PWMCNT01 = 0; //PWM2通道计数寄存器
PWMPER01 = 2000; //PWM2通道周期寄存器
PWMDTY01 = 1005; //PWM2通道占空比寄存器
}
定时器初始化
void InitCap(void)
{
TSCR1 = 0X80; // 定时器正常工作
TSCR2 = 0X80; // 使能定时器溢出中断使能;定时器时钟=总线时钟=16MHz
TIOS = 0X00; // 4通道为输入捕捉通道
TCTL3 = 0X01; // 通道4为上升沿捕捉
TIE_C4I = 1; // 通道4相应的标志位产生中断
}
主程序
void interrupt 16 timovf(void)
{
G_Timeover_add_var++;
TFLG2 = 0Xff;
}
void interrupt 12 timch4(void)
{
G_Capture_new_var = TC4;
G_dis_edge_var = G_Timeincap_add_var*63356+
G_Capture_new_var - G_Capture_old_var;
//两个相邻上升沿之间的计数器个数
G_eng_speed_var = (unsigned int)(16000000 / (G_engineer_chiquan_const * G_dis_edge_var));
//发动机的转速计算(定时器周期频率/(齿圈数 * 捕获的计数器个数)
G_Capture_old_var = G_Capture_new_var;
TFLG1_C4F = 1;
}
使用的总线频率为16MHz.,
我接触飞思卡尔单片机还不到1个月的时间,基础较差,希望大家能够指点一二,谢谢!
另外,我又做了一个例子,将K端口以一定频率输出方波,通过IOC4进行捕获,TC4寄存器的值有变化,以下是附件
InPutCapture(DebugPassed).rar
(194.69 KB)
下载次数: 205
2009-12-25 12:16
附件:
InPutCapture(DebugPassed).rar
(2009-12-25 12:16, 194.69 KB) / 下载次数 205
http://bbs.eccn.com/attachment.php?aid=7608&k=22553e770e765d6e616b4bd64e53cb69&t=1732476306&sid=FtaVCu
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0