zk16 发表于 2012-10-21 21:29:35

led点阵屏程序出错请教

本帖最后由 zk16 于 2012-10-21 21:40 编辑

最近尝试用avr做点阵屏,显示两个字,写了个静态测试程序,用CVAVR编译时相应行出现了所示错误提示,请各位指教问题在那,本人初学avr及CVAVR软件,请赐教!谢谢!
#include<mega16.h>
#include<delay.h>
#define uchar unsigned char
#define uintunsigned int

#define G_138 PORTA.3;
#define DATA_595 PORTC.1;
#define RCK_595 PORTC.2;
#define SCLK_595 PORTC.3;
uchar temp,j,n,m;
uchar hsj={0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,//行扫描数据
               0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0};
uchar HZ=
{
    {0xFF,0x7F,0xFF,0x7F,0x03,0x7F,0xFA,0x01,0x7A,0xFB,0xB5,0xB7,0xD7,0xBF,0xEF,0xBF,
   0xE7,0xBF,0xE7,0x9F,0xDB,0x5F,0xDB,0x6F,0xBE,0xE7,0x79,0xF1,0xC7,0xFB,0xFF,0xFF},/*"欢",0*/

    {0xBF,0xFF,0xDE,0x7F,0xC9,0x83,0xDB,0xBB,0xFB,0xBB,0xFB,0xBB,0x1B,0xBB,0xDB,0xBB,
   0xDA,0xBB,0xD9,0xAB,0xDB,0xB7,0xDF,0xBF,0xDF,0xBF,0xAF,0xFF,0x70,0x01,0xFF,0xFF},/*"迎",0*/
};
void WR_595(void)      //向595发送数据
{
    uchar   x, k=0x80;
    for(x=0;x<8;x++)
    {if(k&temp)
          DATA_595=1;//invalidexpression
       else                  //no matching if
          DATA_595=0;//invalidexpression
       k>>=1;
    }
}
void fslsj()
{   uchar i;
   for(i=0,n=0;i<2;i++,n++)
    {   temp=HZ;
      WR_595();
      temp=HZ;
      WR_595();
    }
}
void main(void)
{   

    DDRA=0xFF;
    DDRC=0xFF;
   
    RCK_595=0;    //invalidexpression
    SCLK_595=0;   //invalidexpression
   
    while(1)
    {uchar i;
       for(i=0;i<16;i++)
       {   G_138=1;   //invalidexpression
         fslsj();
         RCK_595=1;    //invalidexpression
         PORTA=hsj;
         RCK_595=0;      //invalidexpression
         G_138=0;      //invalidexpression
         delay_ms(2);
         j+=2;
       }
    }
}

zk16 发表于 2012-10-22 21:24:29

原因找到了! #define G_138 PORTA.3;
               #define DATA_595 PORTC.1;
               #define RCK_595 PORTC.2;
                #define SCLK_595 PORTC.3;
后面不应该有;号的 低级错误!费了一上午时间才发现,编程不够认真,今后努力改正!
页: [1]
查看完整版本: led点阵屏程序出错请教