سلام
این برنامه چندتا خطا داره که من نتونستم پیداشون کنم،(کدویژن خطا میگیره):
این برنامه چندتا خطا داره که من نتونستم پیداشون کنم،(کدویژن خطا میگیره):
کد:
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; } } } }
دیدگاه