首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教:关于ECT模块的中断

请教:关于ECT模块的中断

我移植了UCos到MC9SDP256上,我想用ECT的前四个捕捉功能捕捉脉冲信号,每两次捕捉发生中断一次,程序测试的时候我用信号发生器的方波信号输入到四个捕捉口上,然后观察I/O口上的变化,以判断是否发生了中断,但是我没有发现I/O口的变化 也就是捕捉中断没有发生?大家能帮我看看问题在哪儿吗??谢谢 代码如下
初始化
void IniEct(void)
{
//TIOS
TIOS=0x00; //设定定时器为输入捕捉功能
//TSCR1
//TSCR1_TEN = TSCR1_TEN;
TSCR1_TEN = 1;
TSCR1_TSWAI=0;
TSCR1_TSFRZ=1;
TSCR1_TFFCA=0;
//TCTL4:Capture on rising edges only
TCTL4=0x55;

//TIE
TIE=0x0f; //enable中断
//TSCR2
TSCR2_TOI=0;//disable conter interrupt
TSCR2_TCRE=0;
TSCR2_PR0=1;
TSCR2_PR1=1;
TSCR2_PR2=0;//prescale Factor 8
//DLYCT
DLYCT_DLY0=1;
DLYCT_DLY1=0;
//ICOVW
ICOVW=0x00; //允许覆盖捕捉和保持寄存器
//ICSYS (write are always permitted when test_mode=1)
//ICSYS_LATQ=0;//Queue Mode
//ICSYS_BUFEN=1;
//ICSYS_TFMOD=1;
ICSYS |= 0x0A;
TFLG1=0x0f;
}
这里只贴出了一个中断程序
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt ic1_isr(void) {
TFLG1_C0F=1;
// num[0]++;
//if(count1==0){
// count1=1;
PORTA ^= 0x10;
htc_temp[0]=TC0H_BIT;
tc_temp[0]=TC0_BIT;
// }
}

PRM文件
VECTOR ADDRESS 0xFFEE ic1_isr /* vector 08 */

谢谢
大家好
PORTA口设置为输出了吗?你用什么工具调试的,不能设置断点吗?
海纳百川  有容乃大
回版主,我A口设置了,oxff。
还要说明一下,昨天不能发生中断 是因为我板子上的线插错了,现在中断能发生了,但是有几个问题:
1:信号发生器四个口的输入都为1KHZ时,有两个A口的输出频率比较正常250hz,但另外两个不稳定,其他频率也一样,也就是输出会不稳定。
2:四个捕捉寄存器TC,和TCH都没有值,偶尔会有值,也不能确定是否正确,我在主程序里面把这些寄存器的值取出来也一样,没有值。
请帮我看看代码可以吗?
如果有必要 ,我可以发工程代码到你邮箱。
大家好
我用codewarrior 3.1      信号发生器和示波器作为调试工具
大家好
可以,发过来我看看吧。
海纳百川  有容乃大
楼主  我已经发到你油箱了 ,如果没有收到 说一下
谢谢你了
大家好
我大致看了一下,应该是分页寄存器PPAGE的操作有问题。你可以看一下我上传的project,问题没有完全解决,但应该有所不同。你可以比较一下读数的结果。
http://bbs.chinaecnet.com/uploadImages/DP256_ECT_ucOS.rar
海纳百川  有容乃大
先谢谢了
大家好
返回列表