اطلاعیه

Collapse
No announcement yet.

فایل هدر LCD

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    فایل هدر LCD

    با سلام

    من از هدر زیر استفاده می کنم ولی هنگام کامپایل کردن برنامه با خطا های زیر مواجه می شوم ، برنامه و فایل هدر رو در زیر گزاشته ام ، خودم احتمال می دهم که اشکال از این باشد که این فایل های هدر برای کامپایلر IAR هست چون من از کامپایلر Keil استفاده می کنم

    لینک دانلود فایل های هدر : http://up.iranblog.com/images/neoijyxh15e2nkfjgup.zip

    برنامه :
    # include <Atmel/ioat91sam7s64.h>
    # include "lcd.h"
    int main (void)
    {
    //------------------Start UP ----------------------------
    AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
    // AT91C_WDTC_WDDIS= (1<<15)
    AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
    //----------------- Speed UP ----------------------------
    AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
    AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
    AT91C_BASE_PMC->PMC_MCKR = 0x3;
    AT91C_BASE_PMC->PMC_SCER = 0x1;
    //----------------------- Main --------------------------
    while(1)
    {
    lcd_clear();
    lcd_gotoxy(1,1);
    lcd_putsf("Masood"
    }
    }
    خطا ها :

    Build target 'Target 1'
    compiling Program.c...
    lcd.h(13): warning: #1-D: last line of file ends without a newline
    Program.c(6): error: #20: identifier "AT91C_BASE_WDTC" is undefined
    Program.c(6): error: #20: identifier "AT91C_WDTC_WDDIS" is undefined
    Program.c(8): error: #20: identifier "AT91C_BASE_RSTC" is undefined
    Program.c(10): error: #20: identifier "AT91C_BASE_CKGR" is undefined
    Program.c(12): error: #20: identifier "AT91C_BASE_PMC" is undefined
    compiling LCD.C...
    lcd.h(13): warning: #1-D: last line of file ends without a newline
    LCD.C(35): error: #20: identifier "AT91C_BASE_PIOA" is undefined
    LCD.C(76): error: #20: identifier "AT91C_BASE_PIOA" is undefined
    LCD.C(117): error: #20: identifier "AT91C_BASE_PMC" is undefined
    LCD.C(117): error: #20: identifier "AT91C_ID_PIOA" is undefined
    LCD.C(118): error: #20: identifier "AT91C_BASE_PIOA" is undefined
    Target not created
    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

    #2
    پاسخ : فایل هدر LCD

    با سلام

    چندتا تغییر در فایل هدر ایجاد کردم و حالا برنامه بدون خطا کامپایل میشود فقط 3 تا Warning می دهد و مشکل اینجاست که هیچ داده ای روی LCD نمایش داده نمیشود ، آیا به سخت افزار مربوط میشود ، سخت افزار پیشنهاد شده برای این پروژه به شرح زیر است آیا باید حتما مانند زیر LCD رو ببندم

    شماتیک اتصال LCD به میکرو :



    با سپاس
    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

    دیدگاه


      #3
      پاسخ : فایل هدر LCD

      دیگه خسته شدم
      بلند میشم میرم خاک های روی Atmega32 ام رو پاک میکنم و بسکام رو باز میکنم و پروگرامر رو روشن میکنم و ARM رو فراموش میکنم

      بابا ما توی انجمن AVR یک ساعت بیشتر یک پست بدون جواب نمیموند
      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

      دیدگاه


        #4
        پاسخ : فایل هدر LCD

        هر کاری دردسر خودش رو داره عزیز من. این که نشد آدم کاری رو که دردسر داره ولش کنه بره سراغ کار ساده تر. اگر برای حال کردن خودته که خوب هر کاری بکنی ولو از نظر بقیه غلط؛ کاملا درسته. ولی معمولا نباید یک کار به ظاهر سخت رو به همه مشکلاتش ول کنی که کسی کمک نمیکنه.
        متاسفانه من با اتمل کار نمیکنم و نمیتونم هم به سرعت جوابی بدم. بقیه دوستان هم شاید چشمشون به این پست نیفتاده.

        دیدگاه


          #5
          پاسخ : فایل هدر LCD

          سلام
          این هدر فایل های lcd که گذاشتید اینطور که من دیدم برای کتاب AT91 هست. خوب اون خطاهایی که میداد به نظرم برای هدر فایل ioat91sam7s64.h هست. من فایل ioat91sam7s64.h را برای شما پیوست کردم و مشکلی ندارد و دیگر نباید خطا دهد این فایل را جایگزین فایل قبلی کن. در مورد خود lcd باید بگم شما باید اون پین های مورد نظر را در برنامه خود اول مشخص کنید و بعد lcd را init کنید و بعد از دیگر توابع استفاده کنید. برای دیدن توابع به صفحه 408 به بعد کتاب مراجعه کن. در مورد سخت افزار هم شما از هر پینی که بخواهید می توانید استفاده کنید. در برنامه زیر که مثال 16-5 صفحه 411 کتاب می باشد سخت افزار را به صورت همان شکل که شما قرار داده اید پیکربندی می کند و عبارات "ARM" و "AT91SAM7S64" را بر روی LCD نمایش می دهد.

          کد:
          #include <Atmel/ioat91sam7s64.h>
          #include "lcd.h"
          void main ()
          {
          //--------------------start up--------------------------
          AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // AT91C_WDTC_WDDIS=(1<<15)
          AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
          //--------------------speed up--------------------------
          AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
          AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC; 
          AT91C_BASE_PMC->PMC_MCKR = 0x3;
          AT91C_BASE_PMC->PMC_SCER = 0x1;
          //-----------------------------------------------------
          lcd_pininit(16,15,5,6,7,8,26,27,28,29);
          lcd_init ();
          lcd_gotoxy(0,0);
          lcd_putsf("ARM");
          lcd_gotoxy(1,0);
          lcd_putsf("AT91SAM7S64");
          while (1);
          }
          شما سخت افزارتون را مثل همان مدار بالا ببندید و فایل باینری که پیوست کردم را بر روی میکرو پروگرام کنید باید بر روی LCD عبارت های بالا نمایش داده شود. البته درخشندگی lcd را هم باید با pot تنظیم کنید.
          فایل های پیوست شده

          دیدگاه


            #6
            پاسخ : فایل هدر LCD

            با سلام

            من از کامپایلر Keil استفاده می کنم و فایل هدر ioat91sam7s64 برای کامپایلر IAR هست که برای کامپایلر Keil از هدر AT91SAM7S64 استفاده می شود در هر دو صورت این هدر برای معرفی میکرو می باشد ، و بحث پایه ها هم این است که من در یک مجله مشاهده کردم که پایه های Data باید در یک پورت قرار گیرند و بقیه پایه ها در یک پورت دیگر و مشکل اینجاست که میکروی AT91SAM7S64 یک پورت A دارد.

            با سپاس
            http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

            دیدگاه


              #7
              پاسخ : فایل هدر LCD

              با سلام

              یک پروژه کامل در کتاب "مرجع کامل میکروکنترلر های سری AT91" هست ولی با IAR نوشته شده است و هدری که در IAR به کار می رود با نام ioat91sam7s64 است ولی هدری که در Keil به کار می رود AT91SAM7S64 است که هدر ioat91sam7s64 در فایل های پروژه موجود است ولی نمیدانم که چگونه اون رو برای Keil تغییر دهم
              یا مثلا هدر موجود در فایل های مجله PMM3 که برای LCD نوشته شده است مخصوص میکروی AT91SAM7X256 است که من نمیدانم چگونه اون رو برای AT91SAM7S64 تغییر دهم

              با سپاس
              http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

              دیدگاه


                #8
                پاسخ : فایل هدر LCD

                سلام توی این تایپیک یکی از دوستان هیدر وصل کردن lcd به صورت 4 پینرو گذاشته
                http://www.eca.ir/forum2/index.php?topic=50901.0
                البته برای x256 است که فقط کافی هست شما قسمتهای رو که pioB داره رو پاک کنید.خودم توی KEIL و IAR هر دو جواب گرفتم

                دیدگاه


                  #9
                  پاسخ : فایل هدر LCD

                  با سلام

                  اگر لطف کنید و اون قسمت ها رو حذف کنید تا من یک هدر کامل و جامع و بدون نقص برای LCD داشته باشم ، خیلی خیلی ازتون ممنون می شوم

                  با سپاس
                  http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                  دیدگاه


                    #10
                    پاسخ : فایل هدر LCD

                    الان با خطا های زیر مواجه شدم


                    Build target 'Target 1'
                    compiling main.c...
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(2981 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3003 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3005 ): error: #20: identifier "AT91C_CAN_CANEN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3008 ): error: #20: identifier "AT91C_CAN_WAKEUP" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3016 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3018 ): error: #20: identifier "AT91C_CAN_CANEN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3026 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3038 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3050 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3060 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3070 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3081 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3092 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3104 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3115 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3127 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3138 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3149 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3160 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3171 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3182 ): error: #20: identifier "AT91PS_CAN" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3193 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3204 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3215 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3230 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3240 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3251 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3261 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3271 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(3282 ): error: #20: identifier "AT91PS_CAN_MB" is undefined
                    Target not created
                    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                    دیدگاه


                      #11
                      پاسخ : فایل هدر LCD

                      سلام .خب s64 که can نداره .شما اگه lib_at91sam7s46 میخواین از اینجا بگیرید
                      http://www.arm-development.com/listing/at91sam7/lib_AT91SAM7S64.h
                      این lcd.h فقط خودتون توی یک فایل h. ذخیره کنید و توی مسیر C:\Keil\ARM\INC\Atmel\SAM7S کپی کنید
                      کد:
                      //sneahdari@yahoo.com
                      
                      #ifndef lcd_INCLUDED_
                      #define lcd_INCLUDED_
                      #ifdef  LCD_PORT_A
                      #define  PIO_enable	  *AT91C_PIOA_PER 
                      #define  PIO_SetOutput	  *AT91C_PIOA_SODR 
                      #define PIO_ClearOutput	  *AT91C_PIOA_CODR 
                      #define PIO_CfgOutput *AT91C_PIOA_OER 
                      #endif
                      
                      #ifndef F_CPU
                      #define F_CPU	18432000
                      #endif
                      #define clcd_minDelay()	cwait(F_CPU/800000)
                      #define clcd_Delay()	cwait(F_CPU/800000)
                      void lcd_init(void);
                      void lcd_putchar(char ch);
                      void lcd_command(char cmd);
                      void lcd_gotoxy(char x, char y);
                      void lcd_clear(void);
                      void lcd_clear_line(char y);
                      void lcd_shift_left(char n);
                      void lcd_shift_right(char n);
                      void lcd_puts(int num);
                      void lcd_putsf(char* data);
                      void lcd_define_char(const char *pc,char char_code);
                      //=========================================================
                      void cwait (volatile int t) {
                       for (;t; t--);
                      }
                      // ============================================================================
                      void setD4567(char val)
                      {
                      	PIO_ClearOutput =((1<<LCD_DB4)|(1<<LCD_DB5)|(1<<LCD_DB6)|(1<<LCD_DB7));
                      	if (val & 0x80)
                      		PIO_SetOutput =(1<<LCD_DB7)	;
                      	if (val & 0x40)
                      		PIO_SetOutput =(1<<LCD_DB6);
                      	if (val & 0x20)
                      	PIO_SetOutput =(1<<LCD_DB5);
                      	if (val & 0x10)
                      	PIO_SetOutput =(1<<LCD_DB4);
                      }
                      // ============================================================================
                      void lcd_putchar(char ch)
                      {
                      	PIO_SetOutput =(1<<LCD_RS);
                      	setD4567(ch);
                      	PIO_SetOutput=(1<<LCD_E);
                      	clcd_minDelay();
                      	PIO_ClearOutput=(1<<LCD_E);
                      	clcd_minDelay();
                      	setD4567(ch<<4);
                      	PIO_SetOutput=(1<<LCD_E);
                      	clcd_minDelay();
                      PIO_ClearOutput=(1<<LCD_E);
                      	clcd_Delay();
                      }
                      // ============================================================================
                      void lcd_command(char cmd)	//Sends Command to LCD
                      {
                      	PIO_ClearOutput=(1<<LCD_RS);
                      	setD4567(cmd);
                      	PIO_SetOutput =(1<<LCD_E);
                      	clcd_minDelay();
                      	PIO_ClearOutput=(1<<LCD_E);
                      	clcd_minDelay();
                      	setD4567(cmd<<4);
                      	PIO_SetOutput =(1<<LCD_E);
                      	clcd_minDelay();
                      	PIO_ClearOutput =(1<<LCD_E);
                      	clcd_Delay();
                      }
                      // ============================================================================
                      void lcd_init()
                      {
                      	PIO_enable =0XFFFFFFFF;
                      	PIO_CfgOutput = ((1<<LCD_RS)|(1<<LCD_E)|(1<<LCD_DB4)|(1<<LCD_DB5)|(1<<LCD_DB6)|(1<<LCD_DB7));
                      	clcd_Delay();
                      	setD4567(0);
                      	setD4567((1<<5)|(1<<4));
                      PIO_SetOutput=(1<<LCD_E);
                      	clcd_minDelay();
                      PIO_ClearOutput =(1<<LCD_E);
                      	clcd_Delay();
                      	setD4567((1<<5)|(1<<4));
                      	PIO_SetOutput =(1<<LCD_E);
                      	clcd_minDelay();
                      	PIO_ClearOutput =(1<<LCD_E);
                      	clcd_Delay();
                      	setD4567(1<<5);
                      	PIO_SetOutput =(1<<LCD_E);
                      	clcd_minDelay();
                      	PIO_ClearOutput =(1<<LCD_E);
                      	clcd_Delay();
                      	lcd_command(0x28);
                      	lcd_command(0x0c);
                      	clcd_Delay();
                      }
                      void lcd_gotoxy(char y, char x)	//Cursor to X Y position
                      {
                      	char DDRAMAddr;
                      x=x-1;
                      	switch(y)
                      	{
                      		case 1: DDRAMAddr = 0x00+x; break;
                      		case 2: DDRAMAddr = 0x40+x; break;
                      		case 3: DDRAMAddr = 0x14+x; break;
                      		case 4: DDRAMAddr = 0x54+x; break;
                      		default: DDRAMAddr = 0x00+x;
                      	}
                      	lcd_command(1<<7 | DDRAMAddr);
                      }
                      // ============================================================================
                      void lcd_define_char(const char *pc,char char_code)
                      {
                      	char a , i;
                      	a = ((char_code<<3)|0x40) & 0xff;
                      	for (i = 0; i < 8 ;i++)
                      	{
                      		lcd_command(a++);
                      		clcd_Delay();
                      		lcd_putchar(pc[i]);
                      		clcd_Delay();
                      	}
                      }
                      // ============================================================================
                      void lcd_clear(void)				//Clears LCD
                      {
                      	lcd_command(0x01);
                      lcd_command(0x02);
                      	clcd_Delay();
                      	clcd_Delay();
                      }
                      //============================================================
                      void lcd_shift_left(char n)	//Scrol n of characters Right
                      {
                      	char i;
                      	for (i = 0 ; i < n ; i++)
                      	{
                      		lcd_command(0x1E);
                      		clcd_Delay();
                      	}
                      }
                      //========================================================
                      void lcd_shift_right(char n)	//Scrol n of characters Left
                      {
                      	char i;
                      	for (i = 0 ; i < n ; i++)
                      	{
                      		lcd_command(0x18);
                      		clcd_Delay();
                      	}
                      }
                      //============================================================================
                       void lcd_puts(int num)
                      {
                        int i,j;
                        int p,f=0;
                        char ch[5];
                       for(i=0;i<5;i++)
                        { 
                         p=1;
                         for(j=4-i;j>0;j--)
                          p = p*10;
                         ch[i] = (num/p);
                      	 if (num>=p && !f){
                      	 f=1; 
                      	 }
                         num =num - ch[i] *p ;
                      	 ch[i] = ch[i] +48;
                         if(f) lcd_putchar(ch[i]);
                        }
                      }
                      // ============================================================================
                      void lcd_putsf(char* data)	//Outputs string to LCD
                      {
                      	char *p;
                      	p = data;
                      	if (!p)
                      		return;
                      	for(; *p ; )
                      	{
                      		lcd_putchar(*p);
                      		p++;
                      	}
                      }
                      //=============================================================
                      void Display_off(void)
                      {
                      	lcd_command(0x08);
                      	clcd_Delay();
                      }
                      //=============================================================
                      void Display_on(void)
                      {
                      	lcd_command(0x0C);
                      	clcd_Delay();
                      }
                      //=============================================================
                      void cursor_off(void)
                      {
                      	lcd_command(0x0C);
                      	clcd_Delay();
                      }
                      //=============================================================
                      void cursor_on(void)
                      {
                      	lcd_command(0x0E);
                      	clcd_Delay();
                      }
                      //=============================================================
                      void cursor_blink(void)
                      {
                      	lcd_command(0x0F);
                      	clcd_Delay();
                      }
                      #endif
                      و این هم یک برنامه نمونه
                      کد:
                      #include <AT91SAM7S64.H>
                      
                      						  
                      
                      
                      #define LCD_PORT_A
                      #define LCD_RS 13
                      #define LCD_E 14
                      #define LCD_DB4 19
                      #define LCD_DB5 20
                      #define LCD_DB6 21
                      #define LCD_DB7 22
                      #include <lcd.h> 
                      
                      
                      int main (void) {
                      	lcd_init(); 
                       	lcd_clear();
                       	cursor_off();
                       	while(1){
                      
                      
                      	lcd_gotoxy(2,1);
                      	lcd_putsf("ali");
                      	
                      	lcd_gotoxy(1,1);
                      	lcd_putsf("ali");
                      } }

                      دیدگاه


                        #12
                        پاسخ : فایل هدر LCD

                        با سلام

                        الان با خطا های زیر مواجه می شوم ، برنامه رو نیز در زیر گزاشته ام

                        خطا ها :

                        Build target 'Target 1'
                        compiling Compile.c...
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(1): error: #40: expected an identifier
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(52): warning: #12-D: parsing restarts here after previous syntax error
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(74): error: #120: return value type does not match the function type
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(194) : warning: #223-D: function "AT91F_AIC_ConfigureIt" declared implicitly
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(194) : error: #20: identifier "AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE&quo t; is undefined
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(2204 ): error: #40: expected an identifier
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(2204 ): error: #65: expected a ";"
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(2283 ): warning: #12-D: parsing restarts here after previous syntax error
                        C:\Keil\ARM\INC\Atmel\SAM7S\lib_AT91SAM7S64.h(2286 ): error: #169: expected a declaration
                        C:\Keil\ARM\INC\Atmel\SAM7S\lcd.h(18): warning: #12-D: parsing restarts here after previous syntax error
                        Compile.c(17): warning: #951-D: return type of function "main" must be "int"
                        Compile.c(34): warning: #1-D: last line of file ends without a newline
                        Target not created

                        برنامه :

                        # include <AT91SAM7S64.h>
                        # include <lib_AT91SAM7S64.h>
                        #define LCD_bit 8
                        #define LCD_PORT_A
                        #define LCD_RS 1
                        #define LCD_E 2
                        #define LCD_DB0 3
                        #define LCD_DB1 4
                        #define LCD_DB2 5
                        #define LCD_DB3 6
                        #define LCD_DB4 7
                        #define LCD_DB5 8
                        #define LCD_DB6 9
                        #define LCD_DB7 10
                        # include <lcd.h>

                        void main ()
                        {
                        //--------------------start up--------------------------
                        AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
                        // AT91C_WDTC_WDDIS=(1<<15)
                        AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
                        //--------------------speed up--------------------------
                        AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
                        AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
                        AT91C_BASE_PMC->PMC_MCKR = 0x3;
                        AT91C_BASE_PMC->PMC_SCER = 0x1;
                        //-----------------------------------------------------
                        lcd_init();
                        lcd_gotoxy(1,1);
                        lcd_putsf("Masood"
                        lcd_gotoxy(2,1);
                        lcd_putsf("Mohamadi"
                        }

                        با سپاس
                        http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                        دیدگاه


                          #13
                          پاسخ : فایل هدر LCD

                          سلام نیازی نیست از lib_at91sam7s64 استفاده کنید.اما اگه دوست دارید هم استفاده کنید برید توی سایت زیر و هیدر at91sam7s64.h رو بگیرید و جایگزین هیدر s64 موجود در C:\Keil\ARM\INC\Atmel\SAM7S بکنید
                          http://www.keil.com/dd/chip/3815.htm
                          در ضمن توی این هیدر فقط باید از db4 تا db7 و rs و e رو معرفی و وصل کنید و معرفی db0تا db3 هیچ کاری انجام نمیده.و وصل بودنش هم فایدهای نداره.چون هیدر اینجور نوشته شده

                          دیدگاه


                            #14
                            پاسخ : فایل هدر LCD

                            با سلام و تشکر بسیار بسیار فراوان از پاسختون

                            من هم نیازی به استفاده از هدر lib_AT91SAM7S64 ندارم و به دلیل مشکلاتی که در هنگام کار با این هدر با آن ها مواجه شدم از این هدر استفاده نمیکنم ، حالا که دیگه دیر وقت است من فردا صبح با هدر LCD که در پست بالا معرفی کردید و هدر موجود برای میکرو در این پست ، برنامه رو کامپایل میکنم

                            با سپاس فراوان
                            http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                            دیدگاه


                              #15
                              پاسخ : فایل هدر LCD

                              سلام.خواهش میکنم
                              شاید خوب توضیح ندادم.در حقیقت فایل lib-at91sam7s46 نیست که مشکل داره و باعث این ارور ها میشه.at91sam7s64.h نرم افزار keil مشکل داره که باعث شده نتونین از هر دو هدر استفاده کنید .شما با دانلود اون هدر میتونین از lib-at91sam7s64 بدون گرفتن اروری استفاده کنید

                              دیدگاه

                              لطفا صبر کنید...
                              X