اطلاعیه

Collapse
No announcement yet.

اشکال در برنامه نویسی

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

    اشکال در برنامه نویسی

    درود بر دوستان

    لطفا ببخشید که تایپیک دیگری در جای دیگر ایجاد کردم ، نمیدوسنتم مخل پرسش سوالم اینجا هست .
    دوستان بنده برنامه ای به زبان سی برای atmega32 نوشتم که برنامه ساعتی هست که قابلیت تنظیم کردن دارد (lcd 2*16) . برنامه را نوشتم ولی کدویژن ارور میدهد و اجازه کامپایل نمیدهد . به نظرتون اشکال اش کجاست ؟
    ممنون
    (در ضمن اگر بخواهم با اجرای برنامه 3 ثانیه اول کلمه hello را نمایش دهد باید چکار کنم؟)
    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <stdio.h>
    #asm
      .equ__lcd_port = 0x12
    #endasm  
    #include <lcd.h>
    void main() {
    char h,t,s,str[16];
    DDRA=0x00
    PORTA = 0xff
    lcd_init(16);
    while(1){
    for(h = 0 ; h<24 ; ++h){
    for(t = 0 ; t<60 ; ++t){
      for(s = 0 ; s<60 ; ++s){ 
       lcd_clear();
       lcd_putsf("Time = ");
       sprintf (str,"%2d : %2d : %2d",h,t,s);
       lcd_gotoxy(1,1);
       lcd_puts(str);
       delay_ms(1000);
       if(PINA.0 == 0 && t > 0) --t ; 
       if(PINA.1 == 0 && t < 59) ++t ;
       if(PINA.2 == 0 && h > 0) --h ;
       if(PINA.3 == 0 && h < 23) ++h ;
      }
      }
      }
      }
      }

    #2
    پاسخ : اشکال در برنامه نویسی

    اگر بخواهم با اجرای برنامه 3 ثانیه اول کلمه hello را نمایش دهد باید چکار کنم؟
    [code=c]lcd_puts('hello&quot delay_ms(300)[/code]

    چه ارروری میده ؟
    من دوست ندارم خودم را درگير مسئله بهشت يا جهنم بکنم ، چون در هر دو قسمت دوستان خوبي دارم !

    دیدگاه


      #3
      پاسخ : اشکال در برنامه نویسی

      نوشته اصلی توسط icarus
      [code=c]lcd_puts('hello&quot delay_ms(300)[/code]

      چه ارروری میده ؟
      منظور دوستمون اینجوری بود
      [code=c]lcd_puts('hello" delay_ms(3000);[/code]
      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
      معرفی نرم افزار Codewizard PWM
      با من بیشتر آشنا شوید

      دیدگاه


        #4
        پاسخ : اشکال در برنامه نویسی

        با تشکر از دوستان

        ارور اول را مربوط به خط DDRA=0x00 میدهد و البته سپس خط های بعدی
        فایل c برنامه را ضمیمه میکنم . لطفا بررسی نمایید و اصلاح شده یا فایل hex را بدهید . خیلی ممنون

        http://s5.picofile.com/file/8156110542/New_Folder_8_.zip.html

        دیدگاه


          #5
          پاسخ : اشکال در برنامه نویسی

          نوشته اصلی توسط kamran1991
          با تشکر از دوستان

          ارور اول را مربوط به خط DDRA=0x00 میدهد و البته سپس خط های بعدی
          فایل c برنامه را ضمیمه میکنم . لطفا بررسی نمایید و اصلاح شده یا فایل hex را بدهید . خیلی ممنون

          http://s5.picofile.com/file/8156110542/New_Folder_8_.zip.html
          پروژه شما مشکل داره
          LCD رو میخواید به کدوم پایه ها وصل کنید ؟؟
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


            #6
            پاسخ : اشکال در برنامه نویسی

            نوشته اصلی توسط kamran1991
            درود بر دوستان

            لطفا ببخشید که تایپیک دیگری در جای دیگر ایجاد کردم ، نمیدوسنتم مخل پرسش سوالم اینجا هست .
            دوستان بنده برنامه ای به زبان سی برای atmega32 نوشتم که برنامه ساعتی هست که قابلیت تنظیم کردن دارد (lcd 2*16) . برنامه را نوشتم ولی کدویژن ارور میدهد و اجازه کامپایل نمیدهد . به نظرتون اشکال اش کجاست ؟
            ممنون
            (در ضمن اگر بخواهم با اجرای برنامه 3 ثانیه اول کلمه hello را نمایش دهد باید چکار کنم؟)
            کد:
            #include <mega32.h>
            #include <delay.h>
            #include <stdio.h>
            #asm
              .equ__lcd_port = 0x12
            #endasm  
            #include <lcd.h>
            void main() {
            char h,t,s,str[16];
            DDRA=0x00
            PORTA = 0xff
            lcd_init(16);
            while(1){
            for(h = 0 ; h<24 ; ++h){
            for(t = 0 ; t<60 ; ++t){
              for(s = 0 ; s<60 ; ++s){ 
               lcd_clear();
               lcd_putsf("Time = ");
               sprintf (str,"%2d : %2d : %2d",h,t,s);
               lcd_gotoxy(1,1);
               lcd_puts(str);
               delay_ms(1000);
               if(PINA.0 == 0 && t > 0) --t ; 
               if(PINA.1 == 0 && t < 59) ++t ;
               if(PINA.2 == 0 && h > 0) --h ;
               if(PINA.3 == 0 && h < 23) ++h ;
              }
              }
              }
              }
              }
            شما در فراخوانی lcd اشتباه کردی و به فقط کافیه از code wizard استفاده کنی مشکلت حل میشه تست کردم بقیه برنامت اشکالی نداشت البته دوتا ; هم یادت رفته بود اینجاها :
            DDRA=0x00
            PORTA = 0xff

            دیدگاه


              #7
              پاسخ : اشکال در برنامه نویسی

              از منوی
              project > configur > C compiler > Libraries > Alphanumeric LCD alcd.h
              تیک Enable رو بزنید و تنظیمات دلخواه رو انجام بدید و OK رو بزنید
              پنجره کدویزارد رو هم باز کنید و هرچی که میخواین انجام بدید و کد مورد نظرتون رو کپی بگیرید ...
              [code=c]#include <mega32a.h>
              #include <delay.h>
              #include <stdio.h>
              #include <alcd.h>

              void main()
              {
              char h,m,s,str[16];
              DDRA=0x00;
              PORTA = 0xff;
              // Alphanumeric LCD initialization
              // Connections are specified in the
              // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
              // RS - PORTB Bit 0
              // RD - PORTB Bit 1
              // EN - PORTB Bit 2
              // D4 - PORTB Bit 4
              // D5 - PORTB Bit 5
              // D6 - PORTB Bit 6
              // D7 - PORTB Bit 7
              // Characters/line: 16
              lcd_init(16);
              while(1)
              {
              for(h = 0 ; h<24 ; ++h)
              {
              for(m = 0 ; m<60 ; ++m)
              {
              for(s = 0 ; s<60 ; ++s)
              {
              lcd_clear();
              lcd_putsf("Time = "
              sprintf (str,"%2d : %2d : %2d",h,m,s);
              lcd_gotoxy(1,1);
              lcd_puts(str);
              delay_ms(1000);
              if(PINA.0 == 0 && m > 0) --m ;
              if(PINA.1 == 0 && m< 59) ++m ;
              if(PINA.2 == 0 && h > 0) --h ;
              if(PINA.3 == 0 && h < 23) ++h ;
              }
              }
              }
              }
              }
              [/code]

              این هم فایل پروژه

              موفق باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #8
                پاسخ : اشکال در برنامه نویسی

                دوست عزیز بسیار ممنون که لطف کردی و کمکم کردی . اجرت با امام حسین

                قصد دارم نوشته زیر را در اول برنامه اضافه کنم ولی هر جا قرار میدهم ارور میدهد . باید در چه محلی قرار بدم که اول نوشته اجرا شود سپس برنامه ساعت ؟

                کد:
                [code]
                ///////////////////
                void Display_LCD_Start(void){
                  lcd_clear(); 
                  lcd_gotoxy(0,0); lcd_putsf("Hello");
                  lcd_gotoxy(0,1); lcd_putsf("Welcome");
                  delay_ms(3000); lcd_clear(); delay_ms(200);
                  ///////////////***********
                [/code]

                دیدگاه


                  #9
                  پاسخ : اشکال در برنامه نویسی

                  نوشته اصلی توسط kamran1991
                  دوست عزیز بسیار ممنون که لطف کردی و کمکم کردی . اجرت با امام حسین
                  خیلی ممنون ...

                  نوشته اصلی توسط kamran1991
                  قصد دارم نوشته زیر را در اول برنامه اضافه کنم ولی هر جا قرار میدهم ارور میدهد . باید در چه محلی قرار بدم که اول نوشته اجرا شود سپس برنامه ساعت ؟

                  کد:
                  [code]
                  ///////////////////
                  void Display_LCD_Start(void){
                    lcd_clear(); 
                    lcd_gotoxy(0,0); lcd_putsf("Hello");
                    lcd_gotoxy(0,1); lcd_putsf("Welcome");
                    delay_ms(3000); lcd_clear(); delay_ms(200);
                    ///////////////***********
                  [/code]
                  آکولات رو نبستید !!!
                  بعد از دستور lcd_init می توانید آن را به کار بگیرید
                  [code=c]#include <mega32a.h>
                  #include <delay.h>
                  #include <stdio.h>
                  #include <alcd.h>

                  void Display_LCD_Start(void)
                  {
                  lcd_clear();
                  lcd_putsf("Hello"
                  lcd_gotoxy(0,1);
                  lcd_putsf("Welcome"
                  delay_ms(3000);
                  lcd_clear();
                  delay_ms(200);
                  }
                  void main()
                  {
                  char h,m,s,str[16];
                  DDRA=0x00;
                  PORTA = 0xff;
                  // Alphanumeric LCD initialization
                  // Connections are specified in the
                  // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                  // RS - PORTB Bit 0
                  // RD - PORTB Bit 1
                  // EN - PORTB Bit 2
                  // D4 - PORTB Bit 4
                  // D5 - PORTB Bit 5
                  // D6 - PORTB Bit 6
                  // D7 - PORTB Bit 7
                  // Characters/line: 16
                  lcd_init(16);
                  Display_LCD_Start();
                  while(1)
                  {
                  for(h = 0 ; h<24 ; ++h)
                  {
                  for(m = 0 ; m<60 ; ++m)
                  {
                  for(s = 0 ; s<60 ; ++s)
                  {
                  lcd_clear();
                  lcd_putsf("Time = "
                  sprintf (str,"%2d : %2d : %2d",h,m,s);
                  lcd_gotoxy(1,1);
                  lcd_puts(str);
                  delay_ms(1000);
                  if(PINA.0 == 0 && m > 0) --m ;
                  if(PINA.1 == 0 && m< 59) ++m ;
                  if(PINA.2 == 0 && h > 0) --h ;
                  if(PINA.3 == 0 && h < 23) ++h ;
                  }
                  }
                  }
                  }
                  }
                  [/code]

                  موفق باشید
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #10
                    پاسخ : اشکال در برنامه نویسی

                    با تشکر فراوان
                    آیا امکانش هست همین فایل را در پریتیوس پیاده سازی کرد ؟ یا باید جداگانه در پرتیوس تنظیمات و برنامه ها را نوشت ؟
                    وسال دیگر این که آیا از یک فایل طرحی شده پرتویس میتوان کد برنامه یا فایل هگز را فهمید و یا استخراج کرد ؟

                    دیدگاه


                      #11
                      پاسخ : اشکال در برنامه نویسی

                      ممنون از آقای اسدی به خاطر تذکرشون
                      من دوست ندارم خودم را درگير مسئله بهشت يا جهنم بکنم ، چون در هر دو قسمت دوستان خوبي دارم !

                      دیدگاه


                        #12
                        پاسخ : اشکال در برنامه نویسی

                        درود
                        برنامه را درون میکرو ریختم و اتصالات را وصل کردم ولی متاسفانه نتیجه ای دیده نشد و تنها چراغ های lcd روشن میشود . همچنین به دلیل نداشتن هویه مجبور شدم سیم های تلفنی را درون سوراخ های lcd کنم. البته پورت های 1 و 3 و 5 را به زمین و 2 را به ولتاژ زدم ولی طبق چیزی که انتظار داشتم مربع های سیاه تشکیل نشد ( ولی دو سه باری به طور شانسی تا نیمه تصویر روشن شدن). نظرتون چیه ؟

                        دیدگاه


                          #13
                          پاسخ : اشکال در برنامه نویسی

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

                          نوشته اصلی توسط kamran1991
                          درود
                          برنامه را درون میکرو ریختم و اتصالات را وصل کردم ولی متاسفانه نتیجه ای دیده نشد و تنها چراغ های lcd روشن میشود . همچنین به دلیل نداشتن هویه مجبور شدم سیم های تلفنی را درون سوراخ های lcd کنم. البته پورت های 1 و 3 و 5 را به زمین و 2 را به ولتاژ زدم ولی طبق چیزی که انتظار داشتم مربع های سیاه تشکیل نشد ( ولی دو سه باری به طور شانسی تا نیمه تصویر روشن شدن). نظرتون چیه ؟

                          درود

                          :eek: :eek: :eek: این دیگه چه جوریشه ....
                          نه عزیزم ... اینجوری نمیشه ... قطع و وصل میشه و به خاطر همین باعث اعصاب خوردی شما میشه ...
                          باید حتما با پین هدر و هویه آنها رو به هم وصل کنید ...

                          توی پروتئوس مداری که باید توی عمل بست هم گذاشتم ... ولی توی پروتئوس نیازی به این کارها نیست ...

                          موفق باشید
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #14
                            پاسخ : اشکال در برنامه نویسی

                            ممنون از شما
                            پس سوال ذهنمو درگیر کرده : اگر حتما باید پین هدر استفاده شود پس چرا چراغ های بکگروند بدون استفاده از پین هدر روشن میشود ؟
                            و آیا این که ایا امکاتنش هست که بکگروند روشن شود ولی نمایشگر ال سی دی خراب باشد ؟ چون پین های 1 و 3 و 5 و 16 را زمین و 2 و 15 را ولتاژ دادم و با سیم ها هم بازی کردم ولی مربع ها را نشون نداد .

                            دیدگاه


                              #15
                              پاسخ : اشکال در برنامه نویسی

                              نوشته اصلی توسط kamran1991
                              ممنون از شما
                              پس سوال ذهنمو درگیر کرده : اگر حتما باید پین هدر استفاده شود پس چرا چراغ های بکگروند بدون استفاده از پین هدر روشن میشود ؟
                              و آیا این که ایا امکاتنش هست که بکگروند روشن شود ولی نمایشگر ال سی دی خراب باشد ؟ چون پین های 1 و 3 و 5 و 16 را زمین و 2 و 15 را ولتاژ دادم و با سیم ها هم بازی کردم ولی مربع ها را نشون نداد .
                              نور پس زمینه هیچ ربطی به LCD نداره ...
                              چون پایه 15 آند و 16 کاتد LEDهای پس زمینه می باشد ...
                              این دوپایه از مدار LCD کاملا جداست ...

                              موفق باشـــید
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه

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