پاسخ : خطا در برنامه c تابلوروان
میشه آخرین کدتون رو بصورت کامل قرار بدین؟
میشه آخرین کدتون رو بصورت کامل قرار بدین؟
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> #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 const char font[] = { 0x42,0x61,0x51,0x49,0x46,// 2 0x3E,0x51,0x49,0x45,0x3E,// 0 0x00,0x42,0x7F,0x40,0x00,// 1 0x18,0x14,0x12,0x7F,0x10,// 4 }; char text[]="2014"; char buffer[1000]; char display[columns]; int n; void scan(char negative); void load(char *str); void effect(); //---------------- void main(void) { char s; //------------ //lcd_init(16); //lcd_clear(); //------------- 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; } }
char display[columns];
char display[columns+2];
#include <mega32a.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 const char font[] = { 0x42,0x61,0x51,0x49,0x46,// 2 0x3E,0x51,0x49,0x45,0x3E,// 0 0x00,0x42,0x7F,0x40,0x00,// 1 0x18,0x14,0x12,0x7F,0x10,// 4 }; char text[]="2014"; char buffer[1000]; char display[columns+2]; int n; void scan(char negative); void load(char *str); void effect(); //---------------- 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; } }
#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 const char font[] = { 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[]="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; } }
دیدگاه