2550|1

2781

帖子

419

TA的资源

五彩晶圆(中级)

楼主
 

MSP430Ware使用笔记 初始化DCO至8MHz [复制链接]

1.平台说明MSP430F5438。

2.ACLK选择XT1,频率为32.768K,MCLK和SMCLK选择DCOCLKDIV,频率为8000K。

  1. // 辅助时钟 ACLK 32.768K
  2. // 系统时钟 子系统时钟 8000K

  3. #include "inc/hw_memmap.h"
  4. #include "ucs.h"
  5. #include "wdt_a.h"
  6. #include "gpio.h"
  7. #include "sfr.h"

  8. void main (void)
  9. {
  10.     // 停止看门狗
  11.     WDT_A_hold(WDT_A_BASE);

  12.     // P4.0保持输出状态
  13.     GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);

  14.     // 初始化P7.0和P7.1为复用功能
  15.     GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );
  16.     // 启动XT1
  17.     UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );

  18.     // DCO参考时钟选择XT1,选择了默认参数
  19.     // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT ,UCS_CLOCK_DIVIDER_1 );
  20.     // DCO时钟8MHz
  21.     // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率
  22.     UCS_initFLLSettle( UCS_BASE, 8000 , 244 );

  23.     // 使能全局中断
  24.     __bis_SR_register(GIE);

  25.     while(1)
  26.     {
  27.         // 翻转P4.0
  28.         GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);
  29.         // 软件延时
  30.         __delay_cycles(1000000);
  31.     }
  32. }
复制代码


从代码的角度来看,使用MSPWare使编程更加简洁,修改更加方便。

最后添加UCS_getSMCLK等函数验证结果,代码如下:

  1. // 辅助时钟 ACLK 32.768K
  2. // 系统时钟 子系统时钟 8000K

  3. #include "inc/hw_memmap.h"
  4. #include "ucs.h"
  5. #include "wdt_a.h"
  6. #include "gpio.h"
  7. #include "sfr.h"

  8. uint32_t clockValue_ACLK = 0;
  9. uint32_t clockValue_MCLK = 0;
  10. uint32_t clockValue_SMCLK = 0;

  11. void main (void)
  12. {
  13. //    uint16_t status;
  14.     // 停止看门狗
  15.     WDT_A_hold(WDT_A_BASE);

  16.     // P4.0保持输出状态
  17.     GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);

  18.     // 初始化P7.0和P7.1为复用功能
  19.     GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );
  20.     // 启动XT1
  21.     UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );

  22.     // DCO参考时钟选择XT1,实际选择了默认参数
  23.     // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT , UCS_CLOCK_DIVIDER_1 );
  24.     // DCO时钟8MHz
  25.     // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率
  26.     UCS_initFLLSettle( UCS_BASE, 8000 , 244 );

  27.     // 如果使用XT1或者XT2,需要调用该函数
  28.     UCS_setExternalClockSource(UCS_BASE,32768,8000000);
  29.     clockValue_SMCLK = UCS_getSMCLK(UCS_BASE);
  30.     clockValue_MCLK = UCS_getMCLK(UCS_BASE);
  31.     clockValue_ACLK = UCS_getACLK(UCS_BASE);

  32.     // 使能全局中断
  33.     __bis_SR_register(GIE);

  34.     while(1)
  35.     {
  36.         // 翻转P4.0
  37.         GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);
  38.         // 软件延时
  39.         __delay_cycles(1000000);
  40.     }
  41. }
复制代码

MSP430Ware使用笔记 初始化DCO至8MHz - 徐凯经验分享http://t.cn/8FLMwSP

最新回复

我请问一下:调用TI官方库这种编程方法在新建工程时是不是和配置寄存器法新建工程时不一样啊?为什么我新建的工程连#include "inc/hw_memmap.h"这句编译都通不过啊?   详情 回复 发表于 2014-7-20 16:21
 
点赞 关注
个人签名

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我请问一下:调用TI官方库这种编程方法在新建工程时是不是和配置寄存器法新建工程时不一样啊?为什么我新建的工程连#include "inc/hw_memmap.h"这句编译都通不过啊?
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表