TI中文支持网
TI专业的中文技术问题搜集分享网站

关于msp430fr5739外部中断

【求详解】本人在使用fp5739的外部中断时发现问题,于是进行测试发现只有外部端口位1.4是才能正确中断,将此代码修改位其他端口均不正确(不是不中断就是一直自己在中短),请问这是我程序设计的问题么?我应该怎么解决

如下是p1.4的外部中断端口设置代码

#include <msp430.h>

int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= BIT0; // Set P1.0 to output direction
P1OUT &= ~BIT0;

P1OUT &= ~BIT4; // P1IES &= ~BIT4; // P1.4 Lo/Hi edge
P1IE = BIT4; // P1.4 interrupt enabled
P1IFG &= ~BIT4; // P1.4 IFG cleared

while(1)
{
__bis_SR_register(LPM4_bits + GIE); // Enter LPM4 w/interrupt
__no_operation(); // For debugger
P1OUT ^= BIT0; // P1.0 = toggle
P1IE = BIT4; }
}

#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)

P1IFG &= ~BIT4; // Clear P1.4 IFG
P1IE = 0;
__bic_SR_register_on_exit(LPM4_bits); // Exit LPM4}

如下是p1.6的外部中断端口设置代码

#include <msp430.h>

int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= BIT0; // Set P1.0 to output direction
P1OUT &= ~BIT0;

P1OUT &= ~BIT6; // P1IES &= ~BIT6; // P1.6 Lo/Hi edge
P1IE = BIT6; // P1.6 interrupt enabled
P1IFG &= ~BIT6; // P1.6 IFG cleared

while(1)
{
__bis_SR_register(LPM4_bits + GIE); // Enter LPM6 w/interrupt
__no_operation(); // For debugger
P1OUT ^= BIT0; // P1.0 = toggle
P1IE = BIT6; }
}

#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{ P1IFG &= ~BIT6; // Clear P1.6 IFG
P1IE = 0;
__bic_SR_register_on_exit(LPM4_bits); // Exit LPM4 
}

灰小子:

你用的官网的开发板,还是自己设计的板子?

其他io的外部电路和1.4是一样的吗?

user5176142:

回复 灰小子:

官网的开发板,不是自己设计的

Ling Zhu2:

回复 user5176142:

user5176142官网的开发板,不是自己设计的

Susan Yang:

回复 user5176142:

您可以看一下launchpad的原理图

除去P1.4外其他的P1口均连接到了eZ-RF(eZ-RF connector for EXP-F5438 board)

user5176142:

回复 Susan Yang:

我的实验板是MSP-EXP430FR5739,另外除去P1.4外其他的P1口均连接到了eZ-RF对我的代码有什么影响么,求解答,麻烦您了

user5176142:

回复 Susan Yang:

我的实验板是MSP-EXP430FR5739,另外除去P1.4外其他的P1口均连接到了eZ-RF对我的代码有什么影响么,求解答,麻烦您了

user5176142:

回复 Ling Zhu2:

有些端口确实下拉后正常,但是有些还是完全错误,比如:下面代码P2.1读出来常高,但是将BIT1换为BIT2也就是P2.2口读入就完全没有问题
#include <msp430.h>

int main(void)
{WDTCTL = WDTPW + WDTHOLD;P2DIR |= BIT0;P2DIR&=~BIT1;P2REN|=BIT1;P2OUT&=~BIT1;while (1){if (P2IN & BIT1)P2OUT |= BIT0;elseP2OUT &= ~BIT0;}
}

Susan Yang:

回复 user5176142:

RF3是Connection to EXP-MSP430F5438 用于连接5438的

user5176142:

回复 Susan Yang:

那我没有连接5438应该对我的io操作没影响吧

赞(0)
未经允许不得转载:TI中文支持网 » 关于msp430fr5739外部中断
分享到: 更多 (0)