MSP430F2132中断的一个问题?

2019-03-24 15:03发布

定义全局变量FrequencyCounter用于Timer0_A3中断程序中计数,很简单的一个,但是出现了问题! unsigned int FrequencyCounter; main(){  ...  ...} #pragma vector=TIMER0_A1_VECTOR__interrupt void Timer0_A1(void){  switch(TAIV)
  {
  default : break;
  case 2: break;
  case 4: break;
  case 10:
    {
      FrequencyCounter ++;
      break;
    }
  }} 奇怪的是,每次执行完FrequencyCounter ++;FrequencyCounter的值都是1,调试后发现每次进入中断的时候FrequencyCounter被清零了,这是为什么呢?FrequencyCounter我定义的是全局变量啊。   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
flywith
1楼-- · 2019-03-25 23:30
你的程序有问题,我估计你的程序被复位了,你缺少一个中断函数
flywith
2楼-- · 2019-03-26 04:32
TACTL = TASSEL_2 + MC_1 + TACLR + TAIE;
TA1CTL = TASSEL_2 + MC_1 + TACLR + TAIE;
你分别开了两个中断的,中断向量分别是TIMER0_A1_VECTOR。TIMER1_A1_VECTOR。
饿,我上个月再用2132
零晨
3楼-- · 2019-03-26 07:55
 精彩回答 2  元偷偷看……
零晨
4楼-- · 2019-03-26 13:32
但是MISRA:2004 标准里面,好像所有多条语句都要用{}这个括起来的啊。
kingheimer
5楼-- · 2019-03-26 13:55
我再看了一下,你程序不全,我问一下你的看门狗关了没有,好像是看门狗没关程序一直在复位吧~!~~~!~~
零晨
6楼-- · 2019-03-26 18:44
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章