اطلاعیه

Collapse
No announcement yet.

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

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

    کتابخانه iobits.h برای کامپایلر Atmel Studio 6.1

    درود دوستان
    امیدوارم خوش و سرحال باشید

    این کتابخونه رو برای حال کردن بیشتر با Atmel Studio 6.1 نوشتمش :biggrin:
    شاید همچین کتابخونه ای بوده ولی من شخصا ندیدم
    این کتابخونه توانایی تنظیمات ورودی و خروجی و ست و ریست و تاگل و نات کردن و تنظیمات مقدار دهی خروجی (حتی به صورت بیتی) و پول پ کردن و ... را انجام میدهد .
    گفتم اینجا بگذارمش تا دوستان حال کنند :nice:
    امیدوارم که خوشتون بیاد

    کتابخانه iobits.h برای کامپایلر Atmel Studio 6.1
    http://s5.picofile.com/file/8119225042/iobits4ATmel_Studio.h.html

    سوالی بود در خدمتم
    ---------------------------------------------------------------------------------------
    آقا کسی نیست خیالمون رو راحت کنه ؟؟؟
    میخوام تو این کامپایلر آکولاد تو آکولاده رو باز و بستش کنم
    اینو نگاه کنید
    http://s5.picofile.com/file/8119172650/5.gif
    به عنوان مثال میخوام این قسمت کوچیکش کنم
    میخوام دقیقا مثل کدویژن باشه
    مثل این
    http://s5.picofile.com/file/8119162300/4.gif
    فقط خیالم رو راحت کنید که میشه تو اتمل این کار رو کرد یا نه !؟؟
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


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

      تا جایی که من میدونم نمیشه . به این کار میگن Collapse یا Folding کردن . فقط توابع رو میشه Collapse کرد .
      [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

      دیدگاه


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

        نوشته اصلی توسط ایمان 88
        تا جایی که من میدونم نمیشه . به این کار میگن Collapse یا Folding کردن . فقط توابع رو میشه Collapse کرد .
        خدا خیرت بده
        پس دیگه پیگیرش نباشم ؟؟؟
        نمیدونم چرا این امکانات رو برای اتمل استودیو نگذاشتن !!!!
        پس مجبورم که با همین بدبختی سر کنم :biggrin:
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


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

          درود دوستان
          چرا پورتهای F,G در مگا 64 و 128 و پورتهای H,J,K,L در میکروهای مگا 1280 و 2560 سه کلاک بیشتر (2کلاک با 3کلاک مجموعا" 5کلاک)پردازش می کنند تا ست یا ریست بشوند ؟؟؟
          در صورتی که پورتهای دیگر در همان میکروها تنها با 2 کلاک ست یا ریست میشوند ...
          دلیلش در چیست ؟؟؟
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


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

            نوشته اصلی توسط SAMAN.ASADI
            این کد که خیلی ناقصه
            سر و تهش مشخص نیست
            سئوال من بیشتر راجع به تحلیل این if بود
            ISR(TIMER0_COMPA_vect) {
            static unsigned short ticks=500;
            ticks--;
            if ((ticks&127)==0) btn_tick();
            که به نظر من میگه اگر متغیر ticks غیر از 127 بود تابع btn_tick اجرا بشه .به نظر شما این درسته؟

            دیدگاه


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

              نوشته اصلی توسط SAMAN.ASADI
              درود دوستان
              چرا پورتهای F,G در مگا 64 و 128 و پورتهای H,J,K,L در میکروهای مگا 1280 و 2560 سه کلاک بیشتر (2کلاک با 3کلاک مجموعا" 5کلاک)پردازش می کنند تا ست یا ریست بشوند ؟؟؟
              در صورتی که پورتهای دیگر در همان میکروها تنها با 2 کلاک ست یا ریست میشوند ...
              دلیلش در چیست ؟؟؟
              دلیلش محل قرارگیری رجیسترهای کنترل کننده این سخت افزارهاست. چون این میکروکنترلرها دارای سخت افزارهای بیشتری نسبت به میکروهای ضعیفتر هستند تعداد رجیسترهای کنترل کننده سخت افزار آنها از 64 عدد بیشتر هست بنابراین تعدادی از این رجیسترها در خارج از فضای I/O قرار می گیرند و دسترسی به آنها از طریق دستورات STS و LDS انجام می شود که برای اجرا به 2 سیکل کلاک احتیاج دارند. به قسمت SRAM Data memory در دیتاشیت مراجعه کنید.
              گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

              دیدگاه


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

                نوشته اصلی توسط samand
                سئوال من بیشتر راجع به تحلیل این if بود
                ISR(TIMER0_COMPA_vect) {
                static unsigned short ticks=500;
                ticks--;
                if ((ticks&127)==0) btn_tick();
                که به نظر من میگه اگر متغیر ticks غیر از 127 بود تابع btn_tick اجرا بشه .به نظر شما این درسته؟
                خوب
                این میگه اگر هفت بیت راست ticks مساوی با صفر بود آنگاه ()btn_tick را اجرا کن
                موفق باشید
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


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

                  نوشته اصلی توسط SAMAN.ASADI
                  خدا خیرت بده
                  پس دیگه پیگیرش نباشم ؟؟؟
                  نمیدونم چرا این امکانات رو برای اتمل استودیو نگذاشتن !!!!
                  پس مجبورم که با همین بدبختی سر کنم :biggrin:
                  سلام مگه notepad++ مرده!!!
                  می تونید کدتون رو همزمان تو اتمل و notepad باز کنید و حالشو ببرین!!!!!
                  یا حتی از winavr استفاده کنید...

                  دیدگاه


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

                    نوشته اصلی توسط samand
                    سئوال من بیشتر راجع به تحلیل این if بود
                    ISR(TIMER0_COMPA_vect) {
                    static unsigned short ticks=500;
                    ticks--;
                    if ((ticks&127)==0) btn_tick();
                    که به نظر من میگه اگر متغیر ticks غیر از 127 بود تابع btn_tick اجرا بشه .به نظر شما این درسته؟
                    اینجوری می نوشتید بهتر بود:
                    کد:
                    ISR(TIMER0_COMPA_vect) {
                      static unsigned short ticks=500;
                      ticks--;  
                      if (ticks&&127) btn_tick();
                    راستی چرا این متغییر هربار به ۵۰۰ برنمی گرده ؟؟؟

                    دیدگاه


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

                      سلام.
                      میخواستم با i2c کار کنم یه مقدار گشتم ولی چیزی دستگیرم نشد.کسی از کتابخوانه twi تو اتمل استودیو استفاده کرده و میتونه منو راهنمایی کنه.
                      میخوام از ds1307 تو کاری استفاده کنم.
                      ممنون.
                      Someone who can change the world
                      ELECTRONIC ENGINEER

                      دیدگاه


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

                        نوشته اصلی توسط abritco
                        سلام.
                        میخواستم با i2c کار کنم یه مقدار گشتم ولی چیزی دستگیرم نشد.کسی از کتابخوانه twi تو اتمل استودیو استفاده کرده و میتونه منو راهنمایی کنه.
                        میخوام از ds1307 تو کاری استفاده کنم.
                        ممنون.
                        سلام نمی دونم می دونید یا نه اتمل از avr-gcc استفاده می کنه بنابراین کلیه کدهایی که برای این برنامه هست با کمی تغییر تو اتمل هم اجرا می شه مثل این:
                        http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewIte m&item_id=425&item_type=project
                        شاید عضویت بخود...

                        دیدگاه


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

                          نوشته اصلی توسط abritco
                          سلام.
                          میخواستم با i2c کار کنم یه مقدار گشتم ولی چیزی دستگیرم نشد.کسی از کتابخوانه twi تو اتمل استودیو استفاده کرده و میتونه منو راهنمایی کنه.
                          میخوام از ds1307 تو کاری استفاده کنم.
                          ممنون.
                          سلام
                          من با کتابخانه LUFA کار کردم ...
                          کتابخونش چند تا اشکال داشت ... (شاید هم من بلد نبودم که باهاش کار کنم)
                          اشکالاتش رو برطرف کردم !!
                          دوتا زیر برنامه هم بهش اضافه کردم ...
                          آسونه ... نگاش کنی متوجه میشوید که به چه نحوی است .
                          در هر صورت ... سوالی بود در خدمتم
                          http://s5.picofile.com/file/8119447626/LUFA_TWI.zip.html
                          موفق باشید
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


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

                            ممنون از راهنمایی تون دوست عزیز.
                            میشه یه مثال از این کتابخخوانه هم قرار بدید.
                            تو init کردن یه مقدار مشکل دارم.
                            Someone who can change the world
                            ELECTRONIC ENGINEER

                            دیدگاه


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

                              یه مشکل دیگه که هست include هاست.
                              یه اینکلود داره به نام :
                              کد:
                              #include "../../../Common/Common.h"
                              که اصلا متوجه نمیشم چیه و وقتی کامپایل میکنم ارورو میده.
                              Someone who can change the world
                              ELECTRONIC ENGINEER

                              دیدگاه


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

                                نوشته اصلی توسط Saman.Asadi
                                خوب
                                این میگه اگر هفت بیت راست ticks مساوی با صفر بود آنگاه ()btn_tick را اجرا کن
                                موفق باشید
                                حق با شماست و کاملا درسته .از توجه شما متشکرم
                                راستی میشه بفرمایین کدها را چطوری paste کنم که در تاپیک درست دیده بشه.

                                اضافه شده در تاریخ :
                                نوشته اصلی توسط dostajn
                                اینجوری می نوشتید بهتر بود:
                                کد:
                                ISR(TIMER0_COMPA_vect) {
                                  static unsigned short ticks=500;
                                  ticks--;  
                                  if (ticks&&127) btn_tick();
                                راستی چرا این متغییر هربار به 500 برنمی گرده ؟؟؟
                                در ادامه برنامه به 500 برمیگرده:
                                کد:
                                 #include "rtc.h"
                                #include "setup.h"
                                #include <avr/interrupt.h>
                                
                                char hour;
                                char min;
                                char sec;
                                
                                //This interrupt gets called 500 times a second. It handles the timekeeping
                                //and calls the routine responsible for the button interaction (which includes
                                //setting up etcetera)
                                ISR(TIMER0_COMPA_vect) {
                                  static unsigned short ticks=500;
                                  ticks--;  
                                  if ((ticks&127)==0) btn_tick();
                                  //If no 500 ticks have passed yet, exit the subroutine.
                                  if (ticks!=0) return;
                                  
                                  //A second has passed.
                                  ticks=500;
                                  
                                  //Adjust sec/min/hour
                                  sec++;
                                  if (sec<60) return;
                                  sec=0; min++;
                                  if (min<60) return;
                                  min=0; hour++;
                                  if (hour<12) return;
                                  hour=0;
                                }

                                دیدگاه

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