网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > imtoken

FTM的PWM、输入捕获、正交解码(3)

打开例程“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)