سلام
این برنامه چندتا خطا داره که من نتونستم پیداشون کنم،(کدویژن خطا میگیره):
این برنامه چندتا خطا داره که من نتونستم پیداشون کنم،(کدویژن خطا میگیره):
کد:
Chip type : ATmega32A
Program type : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32a.h>
#include <delay.h>
#asm
.equ_lcd_port=0x1B
#endasm
#include <lcd.h>
#include <stdio.h>
#define columns 40
#define offset 50
#define space 6
#define SPEED 5
#define NOP #asm("nop")
#define DATA PORTA.0
#define CLOCK PORTA.1
#define STROBE PORTA.2
while (1)
{
// Place your code here
const char font[]= {
0x00,0x00,0x00,0x00,0x00,// space
0X7F,0x09,0x19,0x29,0x46,// R
0X7F,0X49,0X49,0X49,0X41,// E
0X61,0X51,0X49,0X45,0X43,// Z
0X7E,0X11,0X11,0X11,0X7E,// A
0X42,0X61,0X51,0X49,0X46,// 2
0X3E,0X51,0X49,0X45,0X3E,// 0
0X00,0X42,0X7F,0X40,0X00,// 1
0X18,0X14,0X12,0X7F,0X10,// 4
};
void scan(char negative);
void load(char *str);
void effect();
char text[]="REZA 2014";
char buffer[1000];
char display[columns];
int n;
void main(void)
{
char s;
DDRA=0XFF;
load(text);
while(1)
{
for(s=0;s<SPEED;s++)
scan(0);
effect();
}
}
//--------------------
void load(char *str)
{
int FontPosition,i,j=0;
while(*str != 0)
{
FontPosition=(int)((*str++)-32)*5;
for(i=0;i<5;i++)
buffer[j+i]=font[FontPosition+i];
j+=space;
}
}
//----------------------
void effect()
{
register char i;
for(i=0;i<columns;i++)
display[i]=display[i+1];
display[columns-1]=buffer[n];
n++;
if(n==(sizeof(text)*5)+offset)n=0;
}
//--------------------------
void scan(char negative)
{
char i,j,data;
for(j=0;j<8;j++){
STROBE=0;
CLOCK=1;
for(i=columns;i>0;i--){
data=display[i-1];
if(negative)
data=~display[i-1];
data=data>>j;
DATA=data & 0x01;
CLOCK=0;
NOP
NOP
CLOCK=1;
}
for(i=0;i<8;i++){
DATA=0;
if(i==j)
DATA=1;
CLOCK=0;
NOP
NOP
CLOCK=1;
}
STROBE=1;
NOP
NOP
STROBE=0;
}
}
}
}


oo:


دیدگاه