اطلاعیه

Collapse
No announcement yet.

کوچ کردن از کدویژن به AtmelStudio

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

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    فکر کنم اینجوری جواب بده
    کد:
    #define x 1
    
    #if x == 1
    ISR(INT0)....
    #endif
    
    #if x==0
    ISR(INT1)....
    #endif

    دیدگاه


      پاسخ : کوچ کردن از کدویژن به AtmelStudio

      نوشته اصلی توسط sadeghmojtabaei
      فکر کنم اینجوری جواب بده
      کد:
      #define x 1
      
      #if x == 1
      ISR(INT0)....
      #endif
      
      #if x==0
      ISR(INT1)....
      #endif
      خیلی ممنونم ازت دوست عزیز...جواب داد
      تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

      www.intelart.ir


      ساخت کنترلر دما PID فازی با AVR [آموزشی]

      دیدگاه


        پاسخ : کوچ کردن از کدویژن به AtmelStudio

        با سلام خدمت اقایون محترم مخصوصا اقا سوران گل
        من یه سوال داشتم،من تازگیا میخوام با atmel studio gcc کار کنم تقریبا سعی کردم این تاپیک رو جامع و کامل مطالعه کنم و با استفاده از یه پروژه که با atmel studio کار شده مفاهیم اولیه رو یاد بگیرم،حالا به چندتا مشکل بر خوردم که اونم از نظر ضاهری چیزی نیست ولی من درکش نمیکنم شایدم ایکیو ما پاینه،خلاصه خواستیم تو این تاپیک سوالامون رو پپرسیم.
        این if میگه اگه posX کوچکتر از 0 و بزرگتر از 8 و posY کوچکتر از 0 و بزرگتر از 18 باشه 0 رو برامون برگردونه در غیر این صورت.....ایا درست میگم؟یه کم گنگه عددی که کوچکتر از 0 دیگه چطور بزرگتر از 8 باشه؟؟؟؟
        کد:
        			if (posX<0||posX>8||posY<0||posY>18)
        				return 0;
        			neuerStein[posX]=0xc0000;
        			neuerStein[posX+1]=0xc0000;
        			break;
        اینم یه توضیح بدید
        کد:
        	neuerStein[i]=neuerStein[i]>>posY;
        وه کو شیتان شیتی تو بوم

        دیدگاه


          پاسخ : کوچ کردن از کدویژن به AtmelStudio

          نوشته اصلی توسط hanamohsen
          با سلام خدمت اقایون محترم مخصوصا اقا سوران گل
          من یه سوال داشتم،
          این if میگه اگه posX کوچکتر از 0 و بزرگتر از 8 و posY کوچکتر از 0 و بزرگتر از 18 باشه 0 رو برامون برگردونه در غیر این صورت.....ایا درست میگم؟یه کم گنگه عددی که کوچکتر از 0 دیگه چطور بزرگتر از 8 باشه؟؟؟؟
          کد:
          			if (posX<0||posX>8||posY<0||posY>18)
          				return 0;
          			neuerStein[posX]=0xc0000;
          			neuerStein[posX+1]=0xc0000;
          			break;
          اینم یه توضیح بدید
          کد:
          	neuerStein[i]=neuerStein[i]>>posY;
          در مورد سوال اول باید به این صورت بخونید اگر posX کوچکتر از 0 یا . . . یعنی اگر هر کدام از حالت ها اتفاق افتاد مقدار 0 را برگرداند در اینجا در غیر این صورت وجود ندارد و ادامه برنامه.
          در مورد سوال دوم مقدار متغیر محل iام آرایه را به اندازه posY به راست شیفت می دهد و در همان محل ذخیره می کند.

          نوشته اصلی توسط punisher.x64
          خیلی ممنونم ازت دوست عزیز...جواب داد
          از آنجایی که قرار است کتابخانه نوشته شود جهت خوانایی بیشتر می تونید به این صورت هم بنویسید
          کد:
          #define x 1
          
          #if (x==1)
          ...
          #else
          ...
          #endif
          و در صورت وجود بیشتر از دو حالت از 
          #elif (x==...)
          استفاده کنید
          گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

          دیدگاه


            پاسخ : کوچ کردن از کدویژن به AtmelStudio

            سلام . یه سوال ابتدائی : gcc همون atmel stdio هست؟ چرا دو تا اسم داره ؟ avr stdio با اینا فرق داره؟
            بخشنده بودن بیشتر از آنکه توانایی مالی بخواهد ، قلبی بزرگ میخواهد..

            دیدگاه


              پاسخ : کوچ کردن از کدویژن به AtmelStudio

              نوشته اصلی توسط Eng.M.E.A
              سلام . یه سوال ابتدائی : gcc همون atmel stdio هست؟ چرا دو تا اسم داره ؟ avr stdio با اینا فرق داره؟
              gcc یه کامپایلر ولی atmel studio یه پلت فرم واسه تایپ کردن کدهای مربوط.....
              دیگه اگه اشتباه هم گفته باشم دوستان تصحیح میکنن
              وه کو شیتان شیتی تو بوم

              دیدگاه


                پاسخ : کوچ کردن از کدویژن به AtmelStudio

                اگه ممکنه بیشتر راهنمایی کنید . ضمنا winavr رو هم یکم توضیح بدید لطفا.
                بخشنده بودن بیشتر از آنکه توانایی مالی بخواهد ، قلبی بزرگ میخواهد..

                دیدگاه


                  پاسخ : کوچ کردن از کدویژن به AtmelStudio

                  winAVR یک کامپایلر متن باز هست که بصورت رایگان میتونید آن را دانلود کنید
                  این کامپایلر میتونه کد های C ,C++ ,... را کامپایل کنه (پشتیبانی از GCC یا همون GNU Compiler Collection)

                  تفاوت عمده winavr و avrstudio محیط گرافیکی خوب avrstudio (پلت فرم ویژوال استودیو) و عدم نیاز به نوشتن دستی MakeFile در avrstudio هست
                  ولی برای ما که دنبال یک کامپایلر رایگان و بدون محدودیت هستیم بهترین گزینه winavr است

                  اطلاعات بیشتر : http://winavr.sourceforge.net
                  موفق باشید
                  امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                  دیدگاه


                    پاسخ : کوچ کردن از کدویژن به AtmelStudio

                    سلام. تا اونجایی که من می دونم atmel-studio یا winavr در واقع IDE هایی هستند که بر مبنای avr-gcc کار می کنند. در واقع این gcc هست که کد را کامپایل می کنه و winavr یا atmel-studio یا eclips رابط این کار هستند.

                    دیدگاه


                      پاسخ : کوچ کردن از کدویژن به AtmelStudio

                      مزایا و معایت هر کدوم رو اگه ممکنه توضیح بدید.
                      بخشنده بودن بیشتر از آنکه توانایی مالی بخواهد ، قلبی بزرگ میخواهد..

                      دیدگاه


                        پاسخ : کوچ کردن از کدویژن به AtmelStudio

                        همانطور که بنده عرض کردم و دوستمون فرمودند هر دو رابط کامپایلر GCC هستند
                        کد تولید شده با هر دو یک سطح هست و هیچ تفاوتی به این لحاظ ندارند :arrow:
                        تفاوت عمده دو کامپایلر ظاهرشون و user friendly بودنشون است که به این لحاظ AVR STUDIO برتری داره
                        ولی از مزیت WINAVR میشه رایگان بودن اون را نام برد

                        موفق باشید
                        امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                        دیدگاه


                          پاسخ : کوچ کردن از کدویژن به AtmelStudio

                          نوشته اصلی توسط Abbas Sarami
                          همانطور که بنده عرض کردم و دوستمون فرمودند هر دو رابط کامپایلر GCC هستند
                          کد تولید شده با هر دو یک سطح هست و هیچ تفاوتی به این لحاظ ندارند :arrow:
                          تفاوت عمده دو کامپایلر ظاهرشون و user friendly بودنشون است که به این لحاظ AVR STUDIO برتری داره
                          ولی از مزیت WINAVR میشه رایگان بودن اون را نام برد

                          موفق باشید
                          سپاس از همه. ATMEL STUDIO هم رایگان هست و شما میتونید نسخه ی آخر اون رو با تکمیل یه فرم از سایت ATMEL.COM دانلود کنید. در ضمن اینکه پروژه ی WINAVR در سال 2010 متوقف شده و نسخه های بعدی نداره. تفاوت ها زیاده باید کار کنید تا حس کنید. WINAVR با AVRSTUDIO مخصوصا با نسخه های 6 , 6.1 که به نام ATMEL STUDIO و مجهز به ATMEL SOFWARE FRAME WORK هست که یک منبع عظیم از کد ها و نمونه برنامه های آماده برای میکرو های AVR هست (البته به صورت مجزا هم قابل دانلود هست اما در ATMEL STUDIO به صورت پیش فرض وجود دارد) عرضه شده اصلا قابل مقایسه نیست.

                          دیدگاه


                            پاسخ : کوچ کردن از کدویژن به AtmelStudio

                            سلام به همه
                            من قصد دارم یک جا از برنامه یه تعریف اینطوری قرار بدم ولی کامپایلر ایراد میگیره و میگه که عدد 0 رو نباید بزاری :
                            کد:
                            #define TCH_DDR(0)							DDRA
                            قراره که یک جای دیگه از برنامه داخل یک حلقه for هر کدوم از این تعریف ها دوباره با عدد متناظر خودشون فراخوانی بشن :

                            کد:
                            for(int i=0;i<4;i++)
                               TCH_DDR(i)=0xff;
                            به نظر شما چکار باید بکنم؟
                            از قبل سپاسگزارم
                            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                            www.intelart.ir


                            ساخت کنترلر دما PID فازی با AVR [آموزشی]

                            دیدگاه


                              پاسخ : کوچ کردن از کدویژن به AtmelStudio

                              شما نمیتونید این طوری ماکرو تعریف کنید :NO:
                              برای چنین عملیاتی بهتره که یک تابع بنویسید و توسط دستور switch کیس های مختلف را طبقه بندی کنید مثل:
                              کد:
                              void TCH_DDR(unsigned char cmd)
                              {
                              switch(cmd)
                              {
                              case 0: 
                              DDRA = 0xFF;
                              break;
                              case 1: 
                              DDRB = 0xFF;
                              break;
                              case 2: 
                              DDRC = 0xFF;
                              break;
                              
                              }
                              }
                              موفق باشید
                              امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                              دیدگاه


                                پاسخ : کوچ کردن از کدویژن به AtmelStudio

                                نوشته اصلی توسط Abbas Sarami
                                شما نمیتونید این طوری ماکرو تعریف کنید :NO:
                                برای چنین عملیاتی بهتره که یک تابع بنویسید و توسط دستور switch کیس های مختلف را طبقه بندی کنید مثل:
                                کد:
                                void TCH_DDR(unsigned char cmd)
                                {
                                switch(cmd)
                                {
                                case 0: 
                                DDRA = 0xFF;
                                break;
                                case 1: 
                                DDRB = 0xFF;
                                break;
                                case 2: 
                                DDRC = 0xFF;
                                break;
                                
                                }
                                }
                                موفق باشید
                                خیلی ممنونم...
                                هدف من اینه که تا جایی که امکان داره از تابع استفاده نکنم....چون میخوام وقت CPU سر پرش به تابع و استک پوینتر و اون مسائل دیگه تلف نشه...حالا شاید هم تفاوت زیادی نکنه و من خیلی حساسم...
                                یه سوال دیگه هم دارم :

                                من یه پروژه از نوع ++C تعریف کردم و میخوام داخل یکی از فایل های لایبرری یه متغیر آرایه دینامیک تعریف کنم
                                اینطوری :

                                کد:
                                volatile unsigned char *XX;
                                
                                ----
                                ----
                                
                                ----
                                
                                XX=new unsigned char[5]
                                مشکلی که دارم اینه که به کلمه new گیر میده میگه تعریف نشده.در صورتی که اگه داخل خود تابع main اینطوری تعریف کنم مشکلی نداره.
                                ببخشید اگه سوالام زیاد شد...
                                تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                                www.intelart.ir


                                ساخت کنترلر دما PID فازی با AVR [آموزشی]

                                دیدگاه

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