金牌会员
- 积分
- 2905
- 威望
- 1424
- 贡献
- 707
- 兑换币
- 798
- 注册时间
- 2012-10-17
- 在线时间
- 387 小时
|
为什么我设置的编码器采集不到脉冲,求教大神?弄了一晚上了还是不行
/************************************************************/
/* 初始化ECT模块 */
/************************************************************/
void init_ect(void){
TSCR1_TFFCA = 1; // 定时器标志位快速清除
TSCR1_TEN = 1; // 定时器使能位. 1=允许定时器正常工作; 0=使主定时器不起作用(包括计数器)
TIOS = 0x00;
TCTL1 = 0x00; // 后四个通道设置为定时器与输出引脚断开
TCTL2 = 0x00; // 前四个通道设置为定时器与输出引脚断开
TIE = 0x00; // 禁止所有通道定时中断
TSCR2 = 0x07; // 预分频系数pr2-pr0:111,,时钟周期为4us,
TFLG1 = 0xff; // 清除各IC/OC中断标志位
TFLG2 = 0xff; // 清除自由定时器中断标志位
}
/*************************************************************/
/* 初始化累加器 */
/*************************************************************/
void INIT_PAI(void)
{
PACTL = 0x50; //始能脉冲累加器,累加上升沿
}
void initPIT()//定时中断初始化函数 2MS定时中断设置
{
PITCFLMT_PITE=0; //PIT功能关
PITCE_PCE0=1;//定时器通道0使能
PITMTLD0=128;//128分频,在64MHzBusClock下,为500kHz。即//1/500ms=0.002ms
PITLD0=500;//16位定时器初值设定。PITTIME*0.002MS =1ms //注意!!!可能影响舵机响应时间
PITINTE_PINTE0=1;//定时器中断通道0中断使能
PITCFLMT_PITE=1;//PIT功能开
}
void main(void)
{
DisableInterrupts;
SetBusCLK_64M();
AD_Init();
PWM_init();
INIT_PAI();
initPIT();
init_ect();
EnableInterrupts;
for(;;){
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0(void)
{
PITTF_PTF0=1;//清中断标志位
mai=PACNT;
PACNT=0;
}
|
|