|
本帖最后由 zk16 于 2012-10-21 21:40 编辑
最近尝试用avr做点阵屏,显示两个字,写了个静态测试程序,用CVAVR编译时相应行出现了所示错误提示,请各位指教问题在那,本人初学avr及CVAVR软件,请赐教!谢谢!
#include<mega16.h>
#include<delay.h>
#define uchar unsigned char
#define uint unsigned 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[16]={0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0, //行扫描数据
0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0};
uchar HZ[2][32]=
{
{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; //invalid expression
else //no matching if
DATA_595=0; //invalid expression
k>>=1;
}
}
void fslsj()
{ uchar i;
for(i=0,n=0;i<2;i++,n++)
{ temp=HZ[n][j];
WR_595();
temp=HZ[n][j];
WR_595();
}
}
void main(void)
{
DDRA=0xFF;
DDRC=0xFF;
RCK_595=0; //invalid expression
SCLK_595=0; //invalid expression
while(1)
{ uchar i;
for(i=0;i<16;i++)
{ G_138=1; //invalid expression
fslsj();
RCK_595=1; //invalid expression
PORTA=hsj;
RCK_595=0; //invalid expression
G_138=0; //invalid expression
delay_ms(2);
j+=2;
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|