MSP430Ware使用笔记 初始化DCO至8MHz

发布者:SereneMelody最新更新时间:2017-02-21 来源: eefocus关键字:MSP430  Ware  初始化DCO  8MHz 手机看文章 扫描二维码
随时随地手机看文章

1.平台说明MSP430F5438。

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


  1. // 辅助时钟 ACLK 32.768K  

  2. // 系统时钟 子系统时钟 8000K  

  3.   

  4. #include "inc/hw_memmap.h"  

  5. #include "ucs.h"  

  6. #include "wdt_a.h"  

  7. #include "gpio.h"  

  8. #include "sfr.h"  

  9.   

  10. void main (void)  

  11. {  

  12.     // 停止看门狗  

  13.     WDT_A_hold(WDT_A_BASE);  

  14.   

  15.     // P4.0保持输出状态  

  16.     GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);  

  17.   

  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.   

  23.     // DCO参考时钟选择XT1,选择了默认参数  

  24.     // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT ,UCS_CLOCK_DIVIDER_1 );  

  25.     // DCO时钟8MHz  

  26.     // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率  

  27.     UCS_initFLLSettle( UCS_BASE, 8000 , 244 );  

  28.   

  29.     // 使能全局中断  

  30.     __bis_SR_register(GIE);  

  31.   

  32.     while(1)  

  33.     {  

  34.         // 翻转P4.0  

  35.         GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);  

  36.         // 软件延时  

  37.         __delay_cycles(1000000);  

  38.     }  

  39. }  


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

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


  1. // 辅助时钟 ACLK 32.768K  

  2. // 系统时钟 子系统时钟 8000K  

  3.   

  4. #include "inc/hw_memmap.h"  

  5. #include "ucs.h"  

  6. #include "wdt_a.h"  

  7. #include "gpio.h"  

  8. #include "sfr.h"  

  9.   

  10. uint32_t clockValue_ACLK = 0;  

  11. uint32_t clockValue_MCLK = 0;  

  12. uint32_t clockValue_SMCLK = 0;  

  13.   

  14. void main (void)  

  15. {  

  16. //    uint16_t status;  

  17.     // 停止看门狗  

  18.     WDT_A_hold(WDT_A_BASE);  

  19.   

  20.     // P4.0保持输出状态  

  21.     GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);  

  22.   

  23.     // 初始化P7.0和P7.1为复用功能  

  24.     GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );  

  25.     // 启动XT1  

  26.     UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );  

  27.   

  28.     // DCO参考时钟选择XT1,实际选择了默认参数  

  29.     // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT , UCS_CLOCK_DIVIDER_1 );  

  30.     // DCO时钟8MHz  

  31.     // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率  

  32.     UCS_initFLLSettle( UCS_BASE, 8000 , 244 );  

  33.   

  34.     // 如果使用XT1或者XT2,需要调用该函数  

  35.     UCS_setExternalClockSource(UCS_BASE,32768,8000000);  

  36.     clockValue_SMCLK = UCS_getSMCLK(UCS_BASE);  

  37.     clockValue_MCLK = UCS_getMCLK(UCS_BASE);  

  38.     clockValue_ACLK = UCS_getACLK(UCS_BASE);  

  39.   

  40.     // 使能全局中断  

  41.     __bis_SR_register(GIE);  

  42.   

  43.     while(1)  

  44.     {  

  45.         // 翻转P4.0  

  46.         GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);  

  47.         // 软件延时  

  48.         __delay_cycles(1000000);  

  49.     }  

  50. }  




关键字:MSP430  Ware  初始化DCO  8MHz 引用地址:MSP430Ware使用笔记 初始化DCO至8MHz

上一篇:MSP430Ware学习笔记 UART ACLK 9600-8-N-1
下一篇:MSP430Ware使用笔记 初始化XT1

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved