这个话题可能已经被人打败了、但我一直在为 LaunchPad 时钟速度而挣扎。
文档显示、根据我的代码和使用范围、它默认为1MHz
它看起来不是真的。:
;------------------------------------------------------------------
;与 TI Code Composer Studio 一起使用的 MSP430汇编器代码模板
; LaunchPad 时钟应为:
; •MCLK: 1MHz 时的 DCO
; •SMCLK:1MHz 时的 DCO
; •ACLK: 32.768kHz 时的 LFXT1
;------------------------------------------------------------------
nolist
cdecls C、list、"msp430.h" ;包含器件头文件
.list
;------------------------------------------------------------------
.text ;汇编到程序存储器中。
全局复位 ;必须重置设置入口点
.retain ;覆盖 ELF 条件链接
;并保留当前部分。
.retainrefs ;并保留具有的任何段
;对当前段的引用。
;----------------------------------------------------------------
复位: MOV.w #_STACK_END、SP ;初始化 stackpointer。 重置是开始...... 加载程序必须具有此名称
MOV.w #WDTPW|WDTHOLD、&WDTCTL ;停止看门狗计时器(看门狗密码= 0x5A + WDTHOLD 位15
;-------- 初始化端口---
InitP1:
BIS.b #BIT0|BIT6、&P1DIR ;将端口1中的位0和6设置为输出
BIC.b #BIT0、&P1OUT ;关闭绿色 LED
BIC.b #BIT6、&P1OUT ;关闭红色 LED
NOP
BIS.w #GIE、SR ;启用中断-最后要做的事情
NOP
;---- 绿色 LED 端口上的示波器探针、显示96.8Khz 不是1MHz
TstClk:
BIS.b #BIT0、&P1OUT ;打开绿色 LED
BIC.b #BIT0、&P1OUT ;关闭绿色 LED
JMP TstClk
;------------------------------------------------------
; 堆栈指针定义 *
;------------------------------------------------------
.global __stack_end
.sect .stack
;----------------------------------------------
; 中断矢量 *
;----------------------------------------------
.sect ".reset" ;MSP430复位矢量
短路 复位 ;必须调用“重置”设置入口点
.end
我在绿色 LED 端口上放置了一个示波器、并观察到实际速度为96.8Khz、甚至不接近1MHz
我已经修改了代码以选择16MHz 速度、它仅显示1.26Mhz
有人能不能对此有所了解?
谢谢
射线