پاسخ : خطا در برنامه 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;
      }
     }
دیدگاه