【求详解】本人在使用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操作没影响吧