请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F2619S-HT 您好!
我的客户在定制板上报告了奇怪的行为。
当低于简单程序运行时、会在 P6.4上生成脉冲。
#include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer for(;;){ int i; P3IN; i = 5000; do (i--); while (i != 0 ); } }
P6.4波形。
如果使用 P3IN、P2IN 或 P4IN、则会发生此问题。
如果使用 P1IN、P5IN 或 P6IN、则不会生成脉冲。
我选中了*。asm generated、代码将 PxIN 地址移动到 R15。
具有 P3IN 源代码的*。asm:P6.4上生成的脉冲。
;* --------------------------------------------------------------------------* ;* BEGIN LOOP $C$L1 ;* ;* Loop source line : 7 ;* Loop closing brace source line : 13 ;* Known Minimum Trip Count : 1 ;* Known Maximum Trip Count : 4294967295 ;* Known Max Trip Count Factor : 1 ;* --------------------------------------------------------------------------* $C$L1: $C$DW$4 .dwtag DW_TAG_lexical_block .dwattr $C$DW$4, DW_AT_low_pc(0x00) .dwattr $C$DW$4, DW_AT_high_pc(0x00) $C$DW$5 .dwtag DW_TAG_variable .dwattr $C$DW$5, DW_AT_name("i") .dwattr $C$DW$5, DW_AT_TI_symbol_name("i") .dwattr $C$DW$5, DW_AT_type(*$C$DW$T$10) .dwattr $C$DW$5, DW_AT_location[DW_OP_breg1 0] .dwpsn file "../main.c",line 9,column 9,is_stmt,isa 0 MOV.B &P2IN+0,r15 ; [] |9| .dwpsn file "../main.c",line 10,column 9,is_stmt,isa 0 MOV.W #500,0(SP) ; [] |10|
具有 P1IN 源代码的*。asm:P6.4上无脉冲。
;* --------------------------------------------------------------------------* ;* BEGIN LOOP $C$L1 ;* ;* Loop source line : 7 ;* Loop closing brace source line : 13 ;* Known Minimum Trip Count : 1 ;* Known Maximum Trip Count : 4294967295 ;* Known Max Trip Count Factor : 1 ;* --------------------------------------------------------------------------* $C$L1: $C$DW$4 .dwtag DW_TAG_lexical_block .dwattr $C$DW$4, DW_AT_low_pc(0x00) .dwattr $C$DW$4, DW_AT_high_pc(0x00) $C$DW$5 .dwtag DW_TAG_variable .dwattr $C$DW$5, DW_AT_name("i") .dwattr $C$DW$5, DW_AT_TI_symbol_name("i") .dwattr $C$DW$5, DW_AT_type(*$C$DW$T$10) .dwattr $C$DW$5, DW_AT_location[DW_OP_breg1 0] .dwpsn file "../main.c",line 9,column 9,is_stmt,isa 0 MOV.B &P1IN+0,r15 ; [] |9| .dwpsn file "../main.c",line 10,column 9,is_stmt,isa 0 MOV.W #500,0(SP) ; [] |10|
该问题发生在定制板上、而不会发生在使用同一器件的其他板上。
因此、客户怀疑这是电路板问题、但不知道上述代码为什么会在 P6.4上生成脉冲。
您对 这种奇怪的行为有什么想法吗?
谢谢、此致、
田志郎一郎