با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل مشکل در کامپایل برنامه
#1
Exclamation 
سلام دوستان ، من وقتی داشتم این برنامه زیر رو کامپایل می کردم اررو داد می خواستم بدونم کسی میدونه چرا این اررو رو میده؟اگه هم برنامه اشکال داره اون رو بی زحمت اصلاح کنید؟
Wlelove Wlelove Wlelove Wlelove Wleloveدیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
Wlelove Wlelove Wlelove Wlelove Wlelove

İmage
کد:
#include <mega32.h>
#include <delay.h>

#define LCD_DATA_PORT       PORTC
#define LCD_DATA_DDR        DDRC
#define LCD_DATA_IN         PINC
#define LCD_CONTROL_PORT    PORTB
#define LCD_CONTROL_DDR     DDRB
#define RS                  2    
#define RW                  1
#define ENABLE              0  

void setRS(void);
void clearRS(void);
void setRW(void);
void clearRW(void);
void setE(void);
void clearE(void);
void lcdCommand(unsigned char);
void lcdClear(void);
void lcdHome(void);
void lcdOn(void);
void lcdOff(void);
void lcdGotoxy(unsigned char,unsigned char);
void lcdInit(void);
void lcdPutChar(unsigned char);
void lcdShift(void);

void main(void)
{

int i;

while (1)
     {
   
         lcdInit();
         
         lcdPutChar('H');
         lcdPutChar('e');
         lcdPutChar('l');
         lcdPutChar('l');
         lcdPutChar('o');      
         lcdPutChar(' ');
         lcdPutChar('W');
         lcdPutChar('o');
         lcdPutChar('r');
         lcdPutChar('l');
         lcdPutChar('d');
         lcdPutChar('!');

         lcdGotoxy(3,1);
         
         lcdPutChar('A');
         lcdPutChar('V');
         lcdPutChar('R');
         lcdPutChar(' ');
         lcdPutChar('M');      
         lcdPutChar('i');
         lcdPutChar('c');      
         lcdPutChar('r');
         lcdPutChar('o');      
         
         delay_ms(1000);
         
         for(i=0;i<3;i++)
         {                
             delay_ms(500);      
             lcdOff();      
             delay_ms(500);
             lcdOn();
         }
         
         delay_ms(1000);              
         
         for(i=0;i<16;i++)
         {
             lcdShift();
             delay_ms(500);
         }                  
     };
}

void setRS(void)
{
       LCD_CONTROL_PORT |= (1<<RS);    
       delay_us(1);            
}

void clearRS(void)
{
       LCD_CONTROL_PORT &= ~(1<<(RS));
       delay_us(1);                
}

void setRW(void)
{
       LCD_CONTROL_PORT |= (1<<RW);
       delay_us(1);
}

void clearRW(void)
{
       LCD_CONTROL_PORT &= ~(1<<RW);
       delay_us(1);
}

void setE(void)
{
       LCD_CONTROL_PORT |= (1<<ENABLE);
       delay_us(1);
}

void clearE(void)
{
       LCD_CONTROL_PORT &= ~(1<<ENABLE);
       delay_us(1);
}

void lcdCommand(unsigned char command)
{  
   LCD_DATA_DDR = 0xff;                
   clearRS();                    
   clearRW();                    
   setE();                        
   delay_us(1);
   LCD_DATA_PORT = command;                            
   clearE();                    
   delay_us(100);                
}

void lcdClear(void)
{
   lcdCommand(0b00000001);
   delay_ms(10);
}

void lcdHome(void)
{
   lcdCommand(0b00000010);
   delay_ms(10);
}

void lcdOn(void)
{
   lcdCommand(0b00001100);  
}

void lcdOff(void)
{
   lcdCommand(0b00001000);  
}

void lcdGotoxy(unsigned char x, unsigned char y)
{
  if ((x<40)&&(y<2))              
  {
       if (y==0)                        
            lcdCommand(0b10000000 + x);              
       else                                
           lcdCommand(11000000 + x);
  }
}

void lcdInit(void)
{
   LCD_CONTROL_DDR=LCD_CONTROL_DDR|((1<<RS)|(1<<RW)|(1<<ENABLE));
   lcdCommand(0b00111000);                              
   lcdOn();
   lcdClear();                
   lcdCommand(0b00000110);        
}

void lcdPutChar(unsigned char dta)
{  
    LCD_DATA_DDR = 0xff;            
    setRS();                
    clearRW();                
    setE();                
    delay_us(1);
    LCD_DATA_PORT = dta;                      
    clearE();                
    delay_us(100);            
}

void lcdShift(void)
{
       lcdCommand(0b00011100);  
}
 

          چو عاشق می‌شدم گفتم که بردم گوهر مقصود  ندانستم که این دریا چه موج خون فشان دارد 

پاسخ
#2
سلام
دوست عزیز اول این وارنینگ هست نه ارور.
بعدشم شما اومدین کلی تابع تعریف کردین ولی از هیچ کدوم توی main  اصلیت استفاده نکردی.
متن رو ترجمه میکردی میدی نوشته از این تابع استفاده نشده ( setRW,lcdHom )

پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: