PWM-input and output

PWM 输入与输出,昨晚在写程序的时候我遇到一个BUG,我怎么也没调出来,那个时候才有点绝望。

问题

写的是PA1单通道输入捕获,PA6单通道输出,我写好配置之后我测量都是正确的,再往后写上改变输出频率之后在进行测量,立马错误,完全错乱,和我预想的全然不同;

  1. 我一直以为是我在输入捕获时出了错,当时想了很多很多,方向都落在了输入捕获上,从未从输出上想问题。

  2. 在早上我通过示波器看输出波形的时候,看到了1Hz的波形不是1Hz,7Hz以后的波形都是正确的,没有问题;然后就想怎么输出1Hz的波形,突然明白,我通过Toggle进行输出PWM波,但是分频是72分频,然后计数,周期最大是65.536*2ms左右,达不到1s,输出波形自然不是我计算的频率,输入捕获自然错乱。

收获:

  1. 明白输入捕获中断的新写法,学习网上的写法,突然发现,突然发现原来如此简单;
    if(TIM_GetITStatus(TIM2, TIM_IT_CC2) == SET) 
    {
        /* Clear TIM3 Capture compare interrupt pending bit */
        TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
        cnt = TIM2->CCR2 - cnt_old + num*65536; 
        cnt_old = TIM2->CCR2;
    }
  1. 写程序时要一开始在脑海里计划处大概的程序走向,要不然很不好写
  2. 在程序运行时有些代码只需要执行一次,我想就不让它执行两次,最好一次解决问题就完事,这样腾出来的时间就很多了,在功能之间相互影响就不会很大;就打简单的比方:写数据进入E2PROM,很多数据就得马上写入,一个写语句就得延时5ms,多了时间就多了;并且写多次也没有意义;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,679评论 25 709
  • TIMx简介 可编程预分频驱动 16位 自动装载计数器 用于输入:测试脉冲宽度输出:产生输出波形(输出比较和PWM...
    吴松乾阅读 5,510评论 0 2
  • 红豆将那些绵长而温润的情感 挂在摇曳的枝头 岁月的长河太多的等待 成了生命深处不可复制的风景 多年以后浅浅记起 旧...
    陶韵阅读 3,110评论 5 7
  • 如果说什么东西最能代表“年味”,无疑味道首当其冲。 记忆中最深刻的是一股浅浅的酸味。那是奶奶准备摊煎饼泡的玉米面,...
    江南玉笛阅读 2,498评论 4 2
  • 一、古质今研-篆刻研习(第三期)内容——界格分析及单刀应用 A、研习内容:1、临摹:选8方有代表性的官印、私印案例...
    冥想抽屉阅读 4,903评论 0 2

友情链接更多精彩内容