msp430f5438 P1口外部中断问题! 10
430单片机问题求救!!!P1的8个口外部中断全开,在P1中断函数中分别对应有8个函数,为什么只能响应其中的一个函数,而且是写在程序段最前边的那个,如下中断函数中得程序段...
430单片机问题求救!!!P1的8个口外部中断全开,在P1中断函数中分别对应有8个函数,为什么只能响应其中的一个函数,而且是写在程序段最前边的那个,如下中断函数中得程序段1 ,为什么呢?求赐教!
#pragma vector=PORT1_VECTOR
__interrupt void Port_1_0(void)
{
_DINT();
if(P1IFG &=0x0ff)
{
delay(500);
if(P1IFG &=0x001)
{
;//程序段1
}
if(P1IFG &=0x002)
{
;//程序段2
}
......
_EINT();
}
上边没写中断标志位清零, 实际的程序中中断标志位已经清零了; 展开
#pragma vector=PORT1_VECTOR
__interrupt void Port_1_0(void)
{
_DINT();
if(P1IFG &=0x0ff)
{
delay(500);
if(P1IFG &=0x001)
{
;//程序段1
}
if(P1IFG &=0x002)
{
;//程序段2
}
......
_EINT();
}
上边没写中断标志位清零, 实际的程序中中断标志位已经清零了; 展开
展开全部
P1IFG &=0x001
你的if条件里面中断标志符是&= 清零再判断;
只要经过 if(P1IFG &=0x001) ,不管实际中断标志符是什么,前11位都会清0.
再经过if(P1IFG &=0x002) 时,最低位也被清零。
你的if条件里面中断标志符是&= 清零再判断;
只要经过 if(P1IFG &=0x001) ,不管实际中断标志符是什么,前11位都会清0.
再经过if(P1IFG &=0x002) 时,最低位也被清零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
T=50000/fMCLK
你采用的是连续计数模式(MC_2),所以CCR0在中断里要递加,采用增计数模式(MC_1)则不需要CCR0 += 50000。
初始化时通过调整BCSCTL1,DCOCTL调整。DCO时钟有误差,可以采用XT2高频晶振。
你采用的是连续计数模式(MC_2),所以CCR0在中断里要递加,采用增计数模式(MC_1)则不需要CCR0 += 50000。
初始化时通过调整BCSCTL1,DCOCTL调整。DCO时钟有误差,可以采用XT2高频晶振。
追问
做串口通信 定时器用不了 再者我要用的事外部中断 不过还是得感谢大侠捧场
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询