这个错误原因该怎么改

2019-07-21 19:58发布


#include "msp430x54x.h"
#define uint unsigned int
#define uchar unsigned char
void port_init();
void delay(uint x);
uchar t=0,u=0;
void main()
{
  WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
  port_init();
  while(1)
  {
    if(t==200)
    {
      t=0;
      P9OUT =~P9OUT;
    }
  }
}
void port_init()
{
  P5DIR |= 0x16;
  P5OUT = 0x10;
  P1DIR |= 0xf0;
  P1OUT |= 0xf0;
  P8DIR = 0xff;
  P8OUT = 0xff;
  P9DIR |= 0x0f;
  P9OUT |= 0xff;
  TA0CTL=0x02c2;
  TA0EX0=0x0007;
  TA0R=(65536-20000);
  TAIFG=0;
}
void delay(uint x)
{
  uint a,b;
  for(a=x;a>0;a--)
    for(b=110;b>0;b--);
}
#progma vector=TIMER0_A0_VECTOR  //(Error[Pe011]: unrecognized preprocessing directive)
__interrupt void Timer0_A0()
{
  TA0R=(65536-20000);
  TAIFG=0;         //(Error[Pe137]: expression must be a modifiable lvalue )
  t++;
}
括号里是错误原因,该怎么改,求指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
zhaoxqi
1楼-- · 2019-07-22 11:07
这个里面好像没有涉及到标志位的寄存器
午夜粪车
2楼-- · 2019-07-22 15:55
 精彩回答 2  元偷偷看……
zhaoxqi
3楼-- · 2019-07-22 21:32
貌似TA0IFG还是不能识别
jiajs
4楼-- · 2019-07-23 03:06
写源代码前,看看本蕊片的头文件,通过这个文件把硬件跟软件关联在一起。必须看明白头文件是预先必做的功课。
zhenykun
5楼-- · 2019-07-23 06:21
430没有位的算法,都是字节加位置码,提取出那个位。TAIFG就是那个中断标志的位,你可以先读出控制寄成器的值与位置码相与,判断是0还是非0,还有对位置吗取反相与,再写回控制寄成器,就清了标志位了。
zhaoxqi
6楼-- · 2019-07-23 09:47
能问个菜鸟问题吗  430是不是有2个定时器?  那后面的A5是什么意思?

一周热门 更多>