完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 michael_llh 于 2016-1-29 17:38 编辑 MSP432学习心得之时钟配置 关于建立工程和导入库函数的方法在这里不在介绍,可以参考MSP430趣谈的前几讲里面有说到,这里我们就直接开始了。 我们第一步来看下在没有配置时钟的情况下我们直接用库函数调用查看默认情况下各个时钟的时间是多少? 简单的代码实现,在仿真过程中,左键点击即可选中该变量,或者直接右键将各个变量添加到watch Expression,这里有一个前提就是该变量必须是全局变量,否则无法添加。 通过该表格我们对应到我们相应的时钟中得到: 我们很明显的看出了,当我们没有进行时钟配置的时候,除了ACLK和BCLK为32K之外,其他四个时钟源都和DCO的频率是一样的,那么我们来看一下数据手册看哪里提到了这一点。 在这里我们对应到了系统复位时的时钟设置,在没有选择对应外部的高速或者低速时钟的时候,ACLK和BCLK是选择了REFOCLK,其他的四个时钟是选择了DCOCLK。 这里我们查看板子的原理图可以看到相应的引脚连接。具体如下: 我们看到输入晶振的引脚都是连接在PJ端口上面。 错误说明:在上面使用了uint16_t的全局变量,导致了一个错误,就是当整个频率的值小于65535的时候会显示正确的频率值,当大于65535的时候将会导致数据溢出从而导致整个显示值发生错误。所以这里如果我们没有进行修改相应的数据类型,那么我们将会得到一个错误的数据。 这里是已经对应修改过的数据类型所得到的值,在这里我们看到对应的时钟值,后面四个和我们前面测到的不一样,是3000000,也就是3MHz的频率。这里我们来解释一下前面我们测到的为什么是50880这里数字。 首先对于一个16位的寄存器,他所能够代表的数字应该是多大呢?大家可能会比较清楚的知道,16位寄存器能够表示最大的是FFFF,对应数值是65535,那我们对3_000_000 ÷ 65535 ≈ 45,然后我们用3_000_000 - 65535 × 45 = 50925 和我们的测到的值50880有点差距,那这是为什么呢,所以我们在这里要明白两个的区别,65535代表的是16位的寄存器所能代表的最大数字,在这其中我们忽略了数字0,所以如果将一个寄存器用来数数,那么对应最大能够数的数是65536个数,是2的16次方。所以最终我们得到的数值应该是这样算出来的。 3_000_000 - 65536 × 45 = 50880 下面举了个3位寄存器的实例,帮助大家理解。 之后我们对应时钟修改官网的实例代码,可以得到我们想要的时钟设置,下面是我们最终得到的时钟频率,第三个是DCO的频率我们没有进行配置,所以还是原来的3MHz。其他的都相应修改为我们的设置时钟。 最终代码如下: 具体的话可以查看附件。 这里我们看到ACLK和BCLK都是32000Hz,可能有会纳闷说我们接的晶振不是32.768KHz吗,其实是因为我们在初始化话外部时钟的时候写的是32K所以这里导致不同,大家可以改成32768,这样子就可以了。 今天就说到这里了,上面还存在一个不足的地方,就是变量命名的问题,就是尽量要使用可辨识度比较高的名字作为变量名,如果使用的是temp这种的,还有什么,abc的,这种的不好,辨识度很低,可能今天写的代码,明天就看不懂了,变量的命名也很重要。
MSP432code1_1.rar
(2.03 MB, 下载次数: 206
)
|
|
相关推荐
|
|
|
|
|
|
|
|
|
|
|
|
|
|
回帖奖励 +1 分积分
多谢分享,菜鸟才开始玩430,够得学呢
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3057个成员聚集在这个小组
加入小组2989 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3715 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2367 浏览 1 评论
4835 浏览 1 评论
2595 浏览 1 评论
1636浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3717浏览 2评论
2989浏览 1评论
1828浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 00:01 , Processed in 1.655190 second(s), Total 61, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号