admin 发表于 2022-5-23 16:24 版大抱歉我的意思是同一组中输出模式和补获模式同时使用,这样补获模式数值似乎会怪怪的,谢谢! |
assman 发表于 2022-5-23 07:28 可以每一组分开设置是作为PWM输出还是捕获输入 |
1、设置捕获的时钟预分频值请修改下面函数的第二个参数, /* If input minimum frequency is 250Hz, user can calculate capture settings by follows. Capture clock source frequency = __HXT = 12000000 in the sample code. (CNR+1) = Capture clock source frequency/prescaler/clock source divider/minimum input frequency = 12000000/2/1/250 = 24000 (Note: CNR is 16 bits, so if calculated value is larger than 65536, user should increase prescale value.) CNR = 0xFFFF (Note: In capture mode, user should set CNR to 0xFFFF to increase capture frequency range.) */ Capture unit time = 1/(Capture clock source frequency/prescaler) 166ns = 1/(12000000/2) PWM_ConfigCaptureChannel(PWMB, PWM_CH2, 166, 0); 2、为何CalPeriodTime函数里连清两次下降沿中断? 程序设置的是下降沿捕获时会清除计数器重新计数。 两次清除下降沿是为了定位一个测量的起点。比如刚进入此函数时有可能刚发生下降沿中断,也可能发生完下降沿+上升沿,所以这个中断忽略对应A段; 等到下一个下降沿发生时,把它当作测量的起点,所以B点的中断标志也清除掉,开始正事测试。 |
另外还想问CalPeriodTime这函数,一开始是先清除下降沿指示,然后等下降沿信号,再清除下降沿指示,这里为何要连清二次下降沿指示, 不是已经下降完成了,接着肯定要上升沿了,也就是上升信号? 另外在循环里,一开始等下降沿信号,然后清除上升/下降沿指示,这里为何不是只清除下降沿指示即可,而是二者皆清除?
|