اطلاعیه

Collapse
No announcement yet.

نمونه کدهایی برای XMEGA

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : نمونه کدهایی برای XMEGA

    اندازه گیری Duty cycle بصورت متوالی از این روش دارای حداکثر دقت ممکن نیست ( به دلیل خطای ناشی از Restart کرد تایمر بصورت نرم افزاری) هر چند که در مورد SMT160 که دارای خطایی در حد دهم درجه است، می تواند جوابگو باشد. اما در مورد کد شما در همان بدو امر دو مورد به نظر می رسد. یکی مقدار CSTACK است که با مراجعه به جزئیات فایل map. مشاهده می شود دارای مقدار کافی نیست (در پروژه دارای مقدار 0x20 است که با مراجعه به فایل map. مقادیری بسیار بزرگتری از این حافظه مصرف می شود). مورد بعدی مقدار Duty cycle است که ظاهرا در کد شما در 100 ضرب شده و بر حسب درصد محاسبه شده است. در حالیکه برای محاسبه دما در SMT160 باید این مقدار بصورت اعشاری در فرمول قرار داده شود. روشی هم که در متوسط گیری در روتین وقفه و حلقه اصلی بکار برده اید محل مناقشه است و فعلا این دو مورد را بررسی کنید تا در پست های بعدی به این مسئله هم پرداخته شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      پاسخ : نمونه کدهایی برای XMEGA

      سلام. به عنوان یک پیشنهاد من در جایی دیدم که Duty Cycle با استفاده از وقفه یک پین ورودی، و Invert کردن آن پین در روتین وقفه، اندازه گیری می شد.

      دیدگاه


        پاسخ : نمونه کدهایی برای XMEGA

        نوشته اصلی توسط aed
        سلام. به عنوان یک پیشنهاد من در جایی دیدم که Duty Cycle با استفاده از وقفه یک پین ورودی، و Invert کردن آن پین در روتین وقفه، اندازه گیری می شد.
        بله به این حالت و حتی بدون استفاده از امکانات میکرو وفقط با شمارش تعداد دفعات صفر و یک شدن پایه مورد نظر نیز می توان این کار را انجام داد ولی دقت واحد capture از همه این موارد بیشتر بوده و هدف اشنائی با عملکرد این واحد نیز است
        دکتر شريعتي:

        زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

        دیدگاه


          پاسخ : نمونه کدهایی برای XMEGA

          مقادیر cstackتغییر داده شد و تغییراتی کوچکی نیز در سورس اعمال شد ولی نتجه مورد نظر حاصل نشد.ایا تنظیمات قسمت تایمر درست است؟تنظیمات روتین وقفه چطور؟

          سورس تغییر یافت:
          http://uplod.ir/a13kgzeywehc/TIMER2.rar.htm
          دکتر شريعتي:

          زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

          دیدگاه


            پاسخ : نمونه کدهایی برای XMEGA

            نوشته اصلی توسط NAO_ROBOT
            مقادیر cstackتغییر داده شد و تغییراتی کوچکی نیز در سورس اعمال شد ولی نتجه مورد نظر حاصل نشد.ایا تنظیمات قسمت تایمر درست است؟تنظیمات روتین وقفه چطور؟
            کد شما را سر فرصت بررسی می کنم. ضمنا منظور خود را از "نتجه مورد نظر حاصل نشد" بصورت دقیق تر بیان کنید که چه عملکردی در خروجی وجود دارد و نسبت به کد قبل آیا هیچ تغییری ایجاد شده یا خیر.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              پاسخ : نمونه کدهایی برای XMEGA

              با سلام
              منظور اینکه یک سری اعداد گاها روی lcdبه نمایش در می ایند و ناپدید می شوند.ودر کل احساس می شه که اصلا duty cycle اندازه گیری نمی شه.
              دکتر شريعتي:

              زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

              دیدگاه


                پاسخ : نمونه کدهایی برای XMEGA

                یک نکته قابل توجه در کد شما این است که در روتین وقفه، در هربار وقوع وقفه مقدار Duty cycle محاسبه می شود. در حالی که این محاسبه باید بعد از دو بار وقوع وقفه و بدست آوردن بخش های High و Total شکل موج انجام شود. برای عیب یابی کد هم می توانید در ابتدا بجای این بخش ها اعداد ثابتی را قرار دهید و ملاحظه کنید که آیا مقدار مطلوب نمایش داده می شود یا خیر.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  پاسخ : نمونه کدهایی برای XMEGA

                  با سلام
                  با گذاشتن عدد به جای قسمت های مشخص شده برنامه به درستی کار می کند.ولی باید داخل روتین وقفه نیز تغییراتی داده و چک کنم.
                  ایا اندازه گیری duty cycle با این روش دارای دقت بالائی می باشد؟البته نه صرفا برای این مورد،بلکه برای کاربرد های دیگر که به دقت بالائی نیاز است.
                  دکتر شريعتي:

                  زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                  دیدگاه


                    پاسخ : نمونه کدهایی برای XMEGA

                    نوشته اصلی توسط NAO_ROBOT
                    ایا اندازه گیری duty cycle با این روش دارای دقت بالائی می باشد؟البته نه صرفا برای این مورد،بلکه برای کاربرد های دیگر که به دقت بالائی نیاز است.
                    در روش جاری به دلیل اینکه برای Restart شدن تایمر باید وقفه اتفاق بیافتد و در روتین وقفه این عملیات بصورت نرم افزاری انجام شود، در کاربردهای بسیار دقیق این فاصله زمانی (از لحظه capture تا صفر شدن تایمر) خطایی را در نتیجه بوجود می آورد. در رابطه با سوال شما در اولین فرصتی که امکان تهیه smt160 برای من فراهم شود، کدی را برای اندازه گیری و نمایش دما می نویسم و در اختیا شما و سایر دوستان قرار خواهم داد.
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      پاسخ : نمونه کدهایی برای XMEGA

                      با سلام
                      با توجه به کامل بودن کتابخانه lcd رنگی اقای نوربخش که واسه lcd tft با درایور ili9325 نوشتن تصمیم گرفتم برای راه اندازی با xmega و کامپایلر IAR تغییراتی توش بدم.که نتیجه کارو اینجا می زارم امیدوارم مورد استفاده دوستان قرار بگیره.
                      در این مثال از مد 16 بیتی و میکروکنترولر ATXMEGA128A1 استفاده شده.

                      با کامپایلر ATMEL STUDIO 6:

                      http://s2.picofile.com/file/7783144080/TFT_LCD_ILI9325_ATMEL_STUDIO.rar.html

                      با کامپایلر IAR:

                      http://s1.picofile.com/file/7783145913/TFT_LCD_ILI9325_IAR.rar.html

                      دکتر شريعتي:

                      زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                      دیدگاه


                        پاسخ : پاسخ : نمونه کدهایی برای XMEGA

                        نوشته اصلی توسط طراح
                        در رابطه با سوال شما در اولین فرصتی که امکان تهیه smt160 برای من فراهم شود، کدی را برای اندازه گیری و نمایش دما می نویسم و در اختیا شما و سایر دوستان قرار خواهم داد.
                        فرصتی ایجاد شد و کدی را برای اتصال سنسور SMT160-30 و نمایش دما روی 7segment نوشتم که در عمل از دمای منهای ده درجه تا صدوسی درجه تست شد:

                        http://www.knowledgeplus.ir/userfiles/SMT160_0.rar

                        در متن برنامه از هیچ متغیری از نوع float استفاده نشده و یک متوسط گیری از 2048 نمونه انجام شده که در نتیجه دما را بصورت بسیار پایدار و بدون نوسانات لحظه ای نشان می دهد. همچنین برای اندازه گیری Duty cycle از Restart تایمر استفاده نشده و تایمر شمارش خود را بصورت پیوسته انجام می دهد.
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          پاسخ : نمونه کدهایی برای XMEGA

                          با سلام
                          استاد سورس شما بسیار خوب و دارای مطالب اموزنده ای برای من بود. با تست سورس شما مشخص شد که سنسور اینجانب که مدت ها پیش تهیه کرده بودم معیوب بوده .
                          با تشکر
                          دکتر شريعتي:

                          زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                          دیدگاه


                            پاسخ : نمونه کدهایی برای XMEGA

                            نوشته اصلی توسط NAO_ROBOT
                            استاد سورس شما بسیار خوب و دارای مطالب اموزنده ای برای من بود. با تست سورس شما مشخص شد که سنسور اینجانب که مدت ها پیش تهیه کرده بودم معیوب بوده .
                            مطلبی که لازم است در کد مزبور به آن توجه کنید این است که با توجه به اینکه اندازه گیری دما از طریق متوسط گیری مد نظر است، اندازه گیری Duty cycle در هر سیکل مشخص انجام نشده و ممکن است در محاسبات، بخش Low یک سیکل با بخش High سیکل بعدی در فرمول قرار بگیرد. اما به دلیل تعداد نمونه های بسیار زیاد و این مطلب که دما با سرعت کمی تغیر می کند، در نهایت متوسط نهایی مهم است و نه اندازه گیری در یک سیکل مشخص. اما پیرو سوال قبلی شما که در مورد اندازه گیری بسیار دقیق Duty cycle در یک سیکل بود، در این شرایط می توان از دو پین ورودی که به هم متصل می شوند و یکی در مد تحریک هر دو لبه و دیگری در مد لبه بالا رونده تنظیم شده استفاده شود که اولی به یک تایمر در مد Pulse width capture و دومی به تایمری در مد Frequency capture فرمان دهند. در این شرایط بخش high و کل شکل موج بصورت سخت افزاری و همزمان، با حداکثر دقت ممکن اندازه گیری می شوند و با توجه به مقدار دو تایمر می توان Duty cycle را در یک سیکل با بالاترین دقت محاسبه کرد.

                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              پاسخ : نمونه کدهایی برای XMEGA

                              با سلام

                              راه اندازی ماژول NRF24L01

                              برای دقت در کار باید فرکانس کاری هر دو میکرو(گیرنده و فرستنده یکی باشد)
                              این کتابخانه بدون نیاز به SPI سخت افزاری می باشد.
                              این پروژه شامل 2 پوشه می باشد که یکی برای مد فرستنده و دیگری برای مد گیرنده است

                              دانلود پروژه با کامپایلر IAR
                              http://s4.picofile.com/file/7815491070/NRF24L01_XMEGA.rar.html
                              دکتر شريعتي:

                              زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                              دیدگاه


                                پاسخ : نمونه کدهایی برای XMEGA

                                اینم کتابخانه LCD 1100-1202

                                این کتابخانه برای اقای نوربخش راد هستش که من برای سری XMEGA یه تغییرات جزئی دادم.

                                دانلود کتابخانه کامل با ساپورت فارسی با کامپایلر ATMEL STUDIO 6
                                http://s4.picofile.com/file/7815499886/NOKIA_1202_1100.rar.html

                                دانلود کتابخانه خلاصه شده با فونت انگلیسی با کامپایلر IAR
                                http://s4.picofile.com/file/7815503759/NOKIA_1202_1100_IAR_v2.rar.html

                                دکتر شريعتي:

                                زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                                دیدگاه

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