既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
我们打开msp430F5529的用户手册(user_guide,不是datasheet)
从上面的图我们可以看到大概两部分的寄存器,第一部分是时钟主体的设置:
如上图 我们所需要设置的寄存器参数主要就是这四个选项:第一个选项是时钟源,这里我选用的是1MHz的SMCLK(Subsystem master clock 子系统主时钟)
在头文件库 #include <msp430F5529.h>里面我找到了关于 TA0CTL的 相关位
继续向下找,官方的头文件里面都说的明明白白了 实用的方法很简单
TA0CTL |= TASSEL__SMCLK ;就是这么简单 时钟就选完了! 接下来的操作就是配置 ID 和IDEX 两个寄存器
ID是第一次分频 第二次分频是 IDEX
我们需要计算一下我们需要的分频参数 不过在这之前 我们还需要配置一下其他的一些参数:比如模式
模式的选择直接决定了你的用法,进而改变了参数的意义! 模式的选择就是我们先前图片的MC 的位
我们可以看到 模式的控制时这两个bit在控制的
这里是这两个bit 组合出来的四种 模式 后面都有定义 电机控制和舵机控制都必须选择模式1,这个我们可以简单的计算一下,即便我的时钟不进行分频 也就是计数频率是1MHz (最高25MHz) 那么 我们的脉冲的频率也就是1M/65536 = 15或者是25M/65536 = 381, 在我们1M的情况下只能使用 MC_Up这个选项,也就是把 CCR0 当做ARR(Auto Reload)寄存器用 ,当定时器的CNT计数到 CCR0时 重新置0 以电机控制为例 假设我们的电机控制的精度是1000(这里涉及到一个精度问题,我的理解是这样的 你想要把你一个周期时间分成多少个脉冲就是这个精度。精度也就是和ARR 有关。 例如在控制舵机时你的脉冲20ms分成200份(ARR = 2000),那么你能控制的最小脉冲时间是20ms/2000 = 10us 也就是你不可能产生一个不是10us整数倍的脉冲,你的脉宽最小的步进值就是10us 这个步进值会影响到你的舵机等的控制精度,ARR会影响到你电机速度控制闭环时的输出值的取值范围!) ARR的取值还是很值得深入研究的 ARR过高 计数值会比较大,控制精度很高,但是在430定时器的频率高就意味着 多费电,甚至为此你还需要去产生一个远高于 正常系统时钟 的时钟! 取值过小则会浪费精度(比如高精度的舵机)
我在这里取 SMCLK = 1MHz ID和IDEX 都是默认设置(不分频) CCR0 取100 此时产生得到PWM的频率是
SMCLK / (ID*IDEX*CCR0) = 100 0000/(1*1*100) = 10KHz
以上是生成的10KHz频率( 这里的误差较大,是因为时钟不是1Mhz 而是1.05Mhz,至于是为什么是1.05MHz我会查出来。。。 接下来的文章都是按照1.05M的之中在测试的!!!! 文中的计算都是有问题的! 这里就不做后续的修改了,望读者们理解,至于为什么是1.05MHz 的时钟 看这里-------> 链接地址
要设置我们的5KHz 只需要调整ID即可
以上脉冲可以用于 电机控制 但是不能用于舵机控制 , 接下来我们设计舵机控制的配置
假设我们是180度舵机 我希望可以达到步进值 是1 度 我们不妨设置CCR寄存器数值变化180个单位时 脉冲时间变化2ms 这样整个周期就需要 1800 个脉冲 也就是我们的CCR0 需要设置成1800 ,计算一下此时 如果不分频的话的频率是多少 SMCLK/CCR0 = 1000000/1800 = 555.555 Hz > 50Hz 应该可以通过分频得到指定的频率!
接下来 我们应该计算一下分频的系数 我们大概需要的分频系数是 555.5/50 = 11.1 这个数字有点小了可靠的拆分应该是 2*6 = 12
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!