在激活模式下运行 Launchpad (使用超级电容器)时、如果触发 SVSH、则 RTC 计数器无法正确读取。
;--copyright--, bsd_EX ; Copyright (c) 2012 Texas Instruments Incorporated ;版权所有。 ; ;以源代码和二进制形式重新分发和使用,无论是否修改 ;只要 满足以下条件; ;;;*源代码的重新分发必须保留上述版权 ; 声明、此条件列表和以下免责声明。 ;;* 二进制形式的再发行必须复制上述版权 ; 通知、本条件列表和中的以下免责声明 ; 分发时提供的文档和/或其他材料。 ; *德州仪器公司的名称和名称均不 相同; 其贡献者可用于认可或推广衍生产品 ; 未经特定的事先书面许可。 ; 本软件由版权所有者和贡献者“按原样”提供 ;以及任何明示或暗示的保证,包括但不限于; 对适销性和特定 用途适用性的暗示保证不予承认。 在任何情况下,版权所有者或 ;作者都不对任何直接、间接、偶然、特殊的、 ; 惩罚性或必然的损害(包括但不限于 :采购替代产品或服务;丧失使用、数据或利润; 或业务中断)、但出于任何责任理论; 无论是在合同中、严格的责任还是 由于使用本软件而以任何方式产生的侵权行为(包括疏忽或其他) ;即使被告知可能会造成此类损害。 ; ; MSP430代码示例免责声明 ; MSP430代码示例是自包含的低级程序,通常 以 高度简洁的方式演示单个外设功能或器件功能。 为此,代码可能依赖于器件的加电默认 值; 在组合多个示例中的代码时,必须注意寄存器值和设置,如时钟配置和注意;以避免潜在的副作用 。 有关 GUI 的信息,另请参见 www.ti.com/grace; 有关外设配置的 API 函数库方法,请参见 www.ti.com/msp430ware。 ;;--/ 版权--;********* ;MSP430FR59x 演示-使用软件切换 P1.0 ; 说明:使用软件切换 P1.0。 ;ACLK = n/a,MCLK = SMCLK = TACLK =默认 DCO =~625KHz ; MSP430FR5969 ; -------- ; /|\| |; || |; -|RST |; | |; | P1.0|->LED ; Tyler Witt/ P. Thanigai ;Texas Instruments Inc. ;2012年8月 ;使用 Code Composer Studio v5.5构建 ;------------------------------------------------------------------ cdecls C、list、"msp430.h" ;包含设备头文件 ;----------------- .def 复位 ;导出程序入口点到 ;使链接器知道它。 ;------------------------------------------------------------------ 全局_main .global __stack_end .sect .stack ;使堆栈链接器段为“已知”? .text ;汇编到闪存 保留 ;确保当前段已链接 .retainrefs ;---------------------------------------------------- ;这里的主代码 ;-------------------------------------------------------- _main 复位 MOV.w #_STACK_END、SP ;初始化 stackpointer StopWDT MOV.w #WDTPW+WDTHOLD、&WDTCTL;停止 WDT UnlockGPIO BIC.w #LOCKLPM5、&PM5CTL0 ;禁用 GPIO 上电默认值 ;要激活的高阻抗模式 ;以前配置的端口设置 ;----------------- ; SVSH 复位代码这里 ;----------------------------- cmp.b&IV、&SYSRSTIV;检查复位是否为 SVSH jne SKIPSVSH mov.b&RTCCNT1、&CNT1 mov.b&RTCCNT2、&CNT2 mov.b&RTCCNT3、&CNT3 mov.b&RTCCNT4、CNT4 add.w#1、RESETCNT SKIPSVSH (&R): MOV.b #0x10、&PJSEL0;PJ SEL0 lfxt mov.b#0xA5、&RTCCTL0_H;解锁 mov.b#RT1SSEL、&RTCCTL1;设置计数器模式。 MOV.b#0x1C、&RTCPS0CTL MOV.b#RT1SSEL+RT1PSDIV+RT1IP、&RTCPS1CTL BIC.b#RTCHOLD、&RTCCTL1;清除 RTCHOLD 和位以启动计数器。 MOV.b#0xA5、&RTCCTL0_H;锁定 设置 P1 BIS.b #BIT0、&P1OUT ;清除 P1.0输出锁存器以获得定义的上电状态 BIS.b #BIT0、&P1DIR ;将 P1.0设置为输出方向 MainLoop: NOP JMP MainLoop nop ;------------------------------------------------------- ;可变定义 ;----------------- .text CNT1.byte 0xFF CNT2.byte 0xFF CNT3.byte 0xFF CNT4.byte 0xFF RESETCNT.word 0xFFFF IV.word 0x000E .end ;------------------------------------------------------------------ ;堆栈指针定义 ;----------------- .global __stack_end .sect .stack ;------------------------------------------------------------------ ;中断矢量 ;----- .sect ".reset" ;MSP430复位向量 短路复位
以下是诊断变量的结果:
CNT1 3021 CNT3 0002 RESETCNT 0000 IV 000E

