打开例程“LPLD_InputCapture”,在这里例程中,我们利用FTM0生成一路PWM,用于测试他的频率,用FTM1配置为输入捕获模块,来采集PWM并计算他的频率。pwm_init()初始化函数的代码我们就不赘述了,相信大家都能看懂,直接看下输入捕获的初始化函数ic_init()的代码: 1 ftm1_init_struct.FTM_Ftmx=FTM1;//使能FTM1通道 2 ftm1_init_struct.FTM_Mode=FTM_MODE_IC;//使能输入捕获模式 3 ftm1_init_struct.FTM_ClkDiv=FTM_CLK_DIV128;//计数器频率为总线时钟的128分频 4 ftm1_init_struct.FTM_Isr=ic_isr;//设置中断函数 5 LPLD_FTM_Init(ftm1_init_struct); 6 LPLD_FTM_IC_Enable(FTM1,FTM_Ch0,PTB0,CAPTURE_RI); 7 LPLD_FTM_EnableIrq(ftm1_init_struct);
Line 2:配置FTM1为输入捕获模式。 Line 3:设置计数器的分频系数为128,刚才我们讲过要计算PWM的频率,就要知道CNT计数器的频率,在OSKinetis固件库中,CNT的时钟源为总线时钟,如果这里设置为FTM_CLK_DIV128,那么CNT的频率就是总线频率/128。 Line 4:设置FTM的中断函数,用于处理捕获事件。 Line 6:使能输入捕获的输入通道,和PWM的使能通道同理,这里要设置需要用到的通道号为FTM_Ch0,通道对应的物理引脚为PTB0,捕获边缘为上升沿CAPTURE_RI。关于此函数的参数的具体范围,请参考FTM模块的在线函数手册(点击进入)。 Line 7:一定要记住使能中断。
(责任编辑:admin) |