高级会员
- 积分
- 566
- 威望
- 301
- 贡献
- 203
- 兑换币
- 0
- 注册时间
- 2010-4-29
- 在线时间
- 31 小时
|
我用ECT捕捉编码器的脉冲来测量速度 但为什么读取的结果寄存器的值不对呢……大家看看我的ECT初始化函数 和读取的方法 大家讨论一下哈……
void ECT_INIT(void)
{
TIOS=0x0; //定时器通道0为IC工作方式
TC0=0X00EE; //开始计数基数
// TCTL2=0X02;
TSCR1=0x80; //TSCR1.7,TEN=1,定时器使能
TSCR2=0x85; //定时器时钟=busclock/5定时器溢出中断不允许
TCTL4=0x01; //EDG0B/EDG0A=01,捕捉通道0的上升沿
TIE=0x01; //C0I=1,通道0中断使能
// TSCR2=0x87; //TOI=1,开放定时器1溢出中断并做128分频
}
……
……
……
……
#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void interrupt 8 Int_TimerOverFlow(void)
{
TFLG1_C0F=1; //清中断标志位
Speed_amount=TC0;
D++;
if(Speed_amount<Speed_amount1)
{
V=65535-Speed_amount1+Speed_amount;
}
else
{
V=Speed_amount-Speed_amount1;
}
Speed_amount1=Speed_amount; //v为当前所测的速度 |
|