我的贴子发出来很久了没有TI的工程师帮我回复解决关于用MSP430FR6972芯片及汇编语言编写程序在调试时遇到的问题,中断程序中无法跳出的问题,不知道怎样才能寻求到TI技术支持?产品延期很久了,因为是为了降低成本从MSP430F423芯片改用芯片FR6972,原来是汇编写的,在原来的基础上不想太多的改动,所以还是用汇编修改的,现在改C语言重写要花费很久时间,不知道咋办?
下面是简单的汇编实例,单步运行可以看到中断时事无法跳出中断程序的?
#include "msp430fr6972.h"
;-------------------------------------------------------------------------------
RSEG CSTACK ; Define stack segment
;-------------------------------------------------------------------------------
RSEG CODE
;-------------------------------------------------------------------------------
RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupGPIO bis.b #BIT0,&P1DIR
bis.b #BIT0,&P1OUT
UnlockGPIO bic.w #LOCKLPM5,&PM5CTL0 ; Disable the GPIO power-on default
; high-impedance mode to activate
; previously configured port settings
mov.w #CCIE,&TB0CCTL0 ; TBCCR0 interrupt enabled
mov.w #50000,&TB0CCR0
mov.w #TBSSEL__SMCLK+MC__UP,&TB0CTL ; SMCLK, UP mode
NOP
EINT
// bis.w #LPM0+GIE,SR ; Enter LPM0 w/ interrupt
nop
MAIN:
CALL #DELAY_100mS
JMP MAIN
;--------------------------------------------------
DELAY_100mS:
MOV #0100H,R6
DELAY_100mSLoop:
DEC R6
JNZ DELAY_100mSLoop
RET
;------------------------------------------------------------------------------
TIMER0_B0_ISR; Timer0_B7 CC0 Interrupt Service Routine
;------------------------------------------------------------------------------
xor.b #BIT0,&P1OUT
reti
;-------------------------------------------------------------------------------
COMMON INTVEC ; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG RESET_VECTOR ; Reset Vector
DW RESET
ORG TIMER0_B0_VECTOR ; Timer0_B7 CC0 Interrupt Vector
DW TIMER0_B0_ISR
END