|

楼主 |
发表于 2014-7-3 10:29:44
|
显示全部楼层
本帖最后由 robotong 于 2014-7-3 10:31 编辑
山外メ雲ジ 发表于 2014-7-3 10:03 
看代码!!!!
\Board\inc\FIRE_PORT_cfg.h (打开看看,很容易知道如何配置的) 如下是KL26您的例程中的代码MKL_lptmr.c
void lptmr_pulse_init(LPT0_ALTn altn, uint16 count, LPT_CFG cfg)
{
// 开启模块时钟
SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK; //使能LPT模块时钟
//设置输入管脚
if(altn == LPT0_ALT1)
{
port_init(PTA19, ALT6 ); //在PTA19上使用 ALT6
}
else if(altn == LPT0_ALT2)
{
port_init(PTC5, ALT4 ); //在PTC5上使用 ALT4
}
else //不可能发生事件
{
ASSERT((altn == LPT0_ALT1 ) || (altn == LPT0_ALT2 )); //设置管脚有误?
}
// 清状态寄存器
LPTMR0_CSR = 0x00; //先关了LPT,这样才能设置时钟分频,清空计数值等
// 设置累加计数值
LPTMR0_CMR = LPTMR_CMR_COMPARE(count); //设置比较值
// 管脚设置、使能中断
LPTMR0_CSR = (0
| LPTMR_CSR_TPS(altn) // 选择输入管脚 选择
| LPTMR_CSR_TMS_MASK // 选择脉冲计数 (注释了表示时间计数模式)
| ( cfg == LPT_Falling ? LPTMR_CSR_TPP_MASK : 0 ) //脉冲计数器触发方式选择:0为高电平有效,上升沿加1
| LPTMR_CSR_TEN_MASK //使能LPT(注释了表示禁用)
| LPTMR_CSR_TIE_MASK //中断使能
//| LPTMR_CSR_TFC_MASK //0:计数值等于比较值就复位;1:溢出复位(注释表示0)
);
}
红色部分代码,KL26中PTC5的LPTMR功能是在ALT3,您这里是ALT4,K60有两个输入,但是KL26有三个输入A19,C5,E17,但是我怎么改代码,都没成功,计数不正常!求帮助呀 |
|