查看: 4572|回复: 0

[S12] MC9S12C32定时器输入捕捉

[复制链接]

该用户从未签到

2

主题

10

帖子

0

新手上路

Rank: 1

积分
16
最后登录
1970-1-1
发表于 2009-7-10 13:26:22 | 显示全部楼层 |阅读模式
求教:我的定时器模块程序如下(其他程序省略了),在执行void measure_wave(void)时,一直检测不到跳变沿,导致程序一直停留在while((TFLG1&0x01)==0) {
}                           //wait for first edge     
请大家看看我的定时器初始化 和捕捉程序是否存在问题?如有问题该怎么修改?不胜感激                                 
 
ulong TIM[3]=0;
//-******************初始化定时器TIM**********************************************-//
void Init_TIM(void)
{
  TSCR1_TEN=1;        //Timer Enable
  TIE=0x07;                  //允许TIM0、TIM1、TIM2通道的定时器中断
  TSCR2=0x07;                //Timer Clock Selection:Bus Clock / 128  
  TSCR1_TFFCA=1;       //快速清除中断标志允许
  TIOS=0x00;                //PT设置为输入捕捉
  TCTL4_EDG0A=1;
  TCTL4_EDG0B=1;             //检测跳变沿
  TFLG1=0xff;   // clear flags
}
 
//~~~~~~~~~~~~采集周期信号
void measure_wave(void) {
 
while((TFLG1&0x01)==0) {
}                           //wait for first edge                                       问题:程序一直检测不动跳变沿
 
TIM0[0]=TCNT;
TFLG1=0x04;
while((TFLG1&0x04)==0){
if(TFLG2_TOF)num++;
}                         //wait for second edge
 TIM0[1]=TCNT;
 TFLG1=0x04;
 
}
 
我知道答案 目前已有0人回答
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-8 13:01 , Processed in 0.071569 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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