高级会员
- 积分
- 557
- 威望
- 247
- 贡献
- 122
- 兑换币
- 139
- 注册时间
- 2014-4-20
- 在线时间
- 94 小时
- 毕业学校
- 华北水利水电大学
|
void lptmr_pulse_counter()
{
uint32 compare_value=50000;
SIM_SCGC5|=SIM_SCGC5_LPTIMER_MASK; //开启模块的时钟单元
LPTMR0_CSR=0x00; //LPTMR的初始化
LPTMR0_PSR=0x00;
LPTMR0_CMR=0x00;
SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; //Turn on PORTC clock
PORTC_PCR5=PORT_PCR_MUX(0x4); //Use ALT4 on PTC5
LPTMR0_PSR|=LPTMR_PSR_PCS(0x1)|LPTMR_PSR_PBYP_MASK; //Use LDO but bypass glitch filter
LPTMR0_CMR|=LPTMR_CMR_COMPARE(compare_value); //Set compare value
LPTMR0_CSR|=LPTMR_CSR_TPS(0x2); //Set LPT to use the pin selected
LPTMR0_CSR|=LPTMR_CSR_TMS_MASK; //put in pulse count mode 上升沿捕捉
LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;
}
void hw_pit1_init()
{
SIM_SCGC6|=SIM_SCGC6_PIT_MASK; //使能PIT时钟
PIT_MCR&=~(PIT_MCR_MDIS_MASK); //调试模式下禁止
PIT_MCR|=PIT_MCR_FRZ_MASK; //使能PIT模块时钟
PIT_LDVAL1=3600000; //设置周期 10ms
PIT_TCTRL1|=PIT_TCTRL_TEN_MASK; //使能pit模块运行
PIT_TCTRL1&=~(PIT_TCTRL_TIE_MASK); //关pit中断
}
void pit1_isr(void)
{
disable_irq (69);
if((PIT_TFLG0&PIT_TFLG_TIF_MASK)!=0)
{
d = LPTMR0_CNR; //保存脉冲计数器计算值
uart_send(chai,5);
uart_putchar(',');
// LPTMR_CSR_REG(LPTMR0_BASE_PTR) &= ~LPTMR_CSR_TEN_MASK; //重启LPTMR 清计数
// LPTMR_CSR_REG(LPTMR0_BASE_PTR) |=LPTMR_CSR_TEN_MASK;
PIT_TFLG0|=PIT_TFLG_TIF_MASK; //清标志
LPTMR0_CSR &= ~(0x01);
LPTMR0_CSR |= (0x01);//LPT0_ALT2,计数模式
lptmr_pulse_counter();
}
enable_irq (69);
}void pit1_isr(void)
{
disable_irq (69);
if((PIT_TFLG0&PIT_TFLG_TIF_MASK)!=0)
{
d = LPTMR0_CNR; //保存脉冲计数器计算值
uart_send(chai,5);
uart_putchar(',');
// LPTMR_CSR_REG(LPTMR0_BASE_PTR) &= ~LPTMR_CSR_TEN_MASK; //重启LPTMR 清计数
// LPTMR_CSR_REG(LPTMR0_BASE_PTR) |=LPTMR_CSR_TEN_MASK;
PIT_TFLG0|=PIT_TFLG_TIF_MASK; //清标志
LPTMR0_CSR &= ~(0x01);
LPTMR0_CSR |= (0x01);//LPT0_ALT2,计数模式
lptmr_pulse_counter();
}
enable_irq (69);
}
测的编码器的数据一直为零,用正交解码就有数据,大神们多指导指导!
|
|