一个人网站运营怎么做网店代运营公司靠谱吗
开发内容介绍
基于芯片自带的PWM定时器模块,实现对PWM波形的控制,掌握pwm定时器的驱动程序开发。
开发理论架构
1)pwm波形的产生的条件:在指定的IO口输出一定频率和占空比的波形
2)pwm波形频率的影响因素:由输入时钟,分频系数以及计数器conter值共同决定,其中对应的关系由芯片数据手册决定(建议根据手册对照芯片厂商的demo程序)
3)pwm波形的占空比影响因素:计数器填充值与比较计数器填充值的比值决定
4)总结:为了生成pwm波形,需要将IO口设置为特定的pwm工作模式,其次通过预分频器和mux分频器以及计数器填充值的配置决定pwm的频率,再根据比较计数器的数值决定pwm的占空比
开发实际过程
开发所遇问题
问题1:
现象:按照梳理的流程配置后,发现pwm波形并未产生
分析:波形错误一方面是时钟没有给到位,获证IO口工作模式不正确,如果是时钟配置不正确,不可能没有波形,最多产生的评频率与期望不符,所以很大可能是IO口工作模式不正确导致的
行动:检查IO口配置,发现一开始配置错了,写的寄存器值是(0x0010),但手册其实是按照二进制给的0010,转化为十六进制也应该是0x2,改后。
结果:可以产生波形,蜂鸣器得到驱动。
感悟:
虽然是练习性质的项目,但是动手做的时候,还是容易出现寄存器配置不正确的问题,实际在工作中,这种初始化函数的具体代码已经由芯片厂商给的静态代码完成了,用户可以根据图形化的工具完成想要实现的功能,初始化函数的寄存器配置已经逐渐不是嵌入式驱动开发的核心技能,当然,问题的排查与调试能力依然重要。(不禁想问,AI技术时代已经来临,以后什么样的技术会被AI取代,而什么样的技术还能把握在人类手中呢?)