اطلاعیه

Collapse
No announcement yet.

[آموزش] فیلم های آموزش AVR

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

    پاسخ : [آموزش] فیلمآ‌های آموزش AVR

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

    دیدگاه


      پاسخ : [آموزش] فیلمآ‌های آموزش AVR

      سلام
      چندتا سوال در رابطه با قرار دادن دستور در جای خاص حافظه فلش داشتم:
      1- چطور می توان فهمید دستوراتی که به زبان سی مینویسیم دقیقا در کجای حافظه فلش قرار میگیرند؟(مثلا دستور خط 100 برنامه به زبان سی باعث تولید 50 دستور زبان ماشین شده ،حالا این 50 دستور مربوط به ISA میکرو بعد از پروگرام شدن در کجای حافظه فلش قرار میگیرد؟ )

      2- در زبان اسمبلی 8086 دستور org # وجود دارد که می توان با آن هرجای دلخواه از حافظه را پر کرد . در ای وی ار برای نوشتن دستورات در جای خاص از حافظه فلش مثلا در قسمت بوت لودر باید از چه دستور[ات]ی استفاده کرد.

      3-آیا این برداشت من درست است؟ آدرس دستوراتی که اول تابع main()هستند در حالتی که فیوزبیت BOOTRST برنامه ریزی نشده (=1) در آدرس 0 حافظه فلش است .که با ریست شدن میکرو و اجرای دستورات خانه 0 و 1 حافظه فلش و جامپ به خانه ای از حافظه که حاوی دستورات ماشین تابع MAIN() است ،اجرای کد اصلی شروع می شود. (آدرسهای 2 تا 41 (2$ تا 28$)مربوط به ISRهای دیگر وقفه ها هستند)

      4- برای مثال زیر آدرس دستور sei کجای فلش است؟
      void main()
      {
      #asm("sei&quot
      }
      با کامپایل کردن این برنامه توی کد ویژن و خوند فایل با پسوند .rom با نوت پد و مقایسه اون با حالتی که دستور #asm("sei&quot را ننویسیم دیدم که فقط یک خط اضافه شد و فقط 000048:9478 به خط یکی مونده به آخر اضافه شد یعنی کد زبان ماشین دستور فعال سازی وقفه ها 9478 است و در خانه48$ از حافظه فلش قرار دارد؟

      پروژه تمرینیه من: با استفاده از کامپایلر *کدویژن* یک سری دستورات را در قسمت بوت لودر قرار بده که این دستورات خود شامل نوشتن دستوراتی در آدرسی که تابع Main من در آن قرار دارد ،باشد.بعد از آن جامپ کن به main یا pc=0 و بعد در آدرس 0 جامپ به main
      راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
      کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
      نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
      http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
      انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

      دیدگاه


        پاسخ : [آموزش] فیلمآ‌های آموزش AVR

        نوشته اصلی توسط RubeuS
        سلام
        چندتا سوال در رابطه با قرار دادن دستور در جای خاص حافظه فلش داشتم:
        1- چطور می توان فهمید دستوراتی که به زبان سی مینویسیم دقیقا در کجای حافظه فلش قرار میگیرند؟(مثلا دستور خط 100 برنامه به زبان سی باعث تولید 50 دستور زبان ماشین شده ،حالا این 50 دستور مربوط به ISA میکرو بعد از پروگرام شدن در کجای حافظه فلش قرار میگیرد؟ )

        2- در زبان اسمبلی 8086 دستور org # وجود دارد که می توان با آن هرجای دلخواه از حافظه را پر کرد . در ای وی ار برای نوشتن دستورات در جای خاص از حافظه فلش مثلا در قسمت بوت لودر باید از چه دستور[ات]ی استفاده کرد.

        3-آیا این برداشت من درست است؟ آدرس دستوراتی که اول تابع main()هستند در حالتی که فیوزبیت BOOTRST برنامه ریزی نشده (=1) در آدرس 0 حافظه فلش است .که با ریست شدن میکرو و اجرای دستورات خانه 0 و 1 حافظه فلش و جامپ به خانه ای از حافظه که حاوی دستورات ماشین تابع MAIN() است ،اجرای کد اصلی شروع می شود. (آدرسهای 2 تا 41 (2$ تا 28$)مربوط به ISRهای دیگر وقفه ها هستند)

        4- برای مثال زیر آدرس دستور sei کجای فلش است؟
        void main()
        {
        #asm("sei&quot
        }
        با کامپایل کردن این برنامه توی کد ویژن و خوند فایل با پسوند .rom با نوت پد و مقایسه اون با حالتی که دستور #asm("sei&quot را ننویسیم دیدم که فقط یک خط اضافه شد و فقط 000048:9478 به خط یکی مونده به آخر اضافه شد یعنی کد زبان ماشین دستور فعال سازی وقفه ها 9478 است و در خانه48$ از حافظه فلش قرار دارد؟

        پروژه تمرینیه من: با استفاده از کامپایلر *کدویژن* یک سری دستورات را در قسمت بوت لودر قرار بده که این دستورات خود شامل نوشتن دستوراتی در آدرسی که تابع Main من در آن قرار دارد ،باشد.بعد از آن جامپ کن به main یا pc=0 و بعد در آدرس 0 جامپ به main
        یک جورایی مشکلات حل شد با این:http://www.atmel.com/images/doc0856.pdf
        فقط مشکل باقی مونده اون پروژه است:
        1- چطور میشه با کدویژن داخل قسمت بوت لودر دستور بنویسم؟
        2- نحوه کار با دستور spm

        فقط از آقای کی نژاد درخواست میکنم اگر مقدور باشه در رابطه ISA و معماری avr در حد یک جلسه صحبت کنند. فکر میکنم خیلی مفید واقع بشه.
        راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
        کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
        نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
        http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
        انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

        دیدگاه


          پاسخ : [آموزش] فیلمآ‌های آموزش AVR

          2 سوال اخیر ارتباطی با مواردی که تاکنون در فیلم ها مطرح شده ندارد. بنابراین سوال خود را در تاپیک مناسبی مطرح کنید تا به آن پاسخ دهم. ضمنا متوجه منظور شما از ISA نشدم. ( آیا منظور Industry Standard Architecture است؟)
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            پاسخ : [آموزش] فیلمآ‌های آموزش AVR

            ISA = Instruction Set Architecture
            منظورم کلیتی از قالب دستورات و Data Path و Control Unit و رجیستر های داخلی r0 ..r31 و rampx و rampy و rampz و... است. البته میدونم مطالب خیلی زیاد است ولی پیشنهاد من توضیحات به اختصار در رابطه با معماری داخلی در حد یک جلسه است و پروژه و مثال اون هم میتونه همون نوشتن بوت لودر که مثلا دستورات را از یک کارت MMC بخونه و محتوای فلش را بنویسه.
            راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
            کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
            نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
            http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
            انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

            دیدگاه


              پاسخ : [آموزش] فیلمآ‌های آموزش AVR

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

              دیدگاه


                پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                با تشکر از شما
                فقط یک سوال در رابطه با موضوعات باقی مانده از این دوره داشتم. با توجه به برگزاری دوره آموزش AVR پیشرفته ...

                پست ویرایش شد
                راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                دیدگاه


                  پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

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

                  دیدگاه


                    پاسخ : [آموزش] فیلمآ‌های آموزش AVR

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

                    دیدگاه


                      پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                      ممنون از جناب کی نژاد-
                      امکانش هست در مورد راه اندازی کیپد با اینتراپت و بدون اینتراپت و مهمتر از اون دریافت اعداد اعشاری از کیپد هم یه اموزش بذارید و توضیح بدید!

                      دیدگاه


                        پاسخ : [آموزش] فیلمآ‌های آموزش AVR

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

                        دیدگاه


                          پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                          بله درسته چون من از اینتراپت استفاده کرده بودم متوجه مشکل بانسینگ نشده بودم

                          دیدگاه


                            پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                            سلام چندتا سوال در رابطه با برنامه تولید موج سینوسی 50Hz داشتم :
                            1- میخواستم توضیح در رابطه با این کامنت برنامه بدید:
                            Carrier frequency = 15.68 KHz
                            ////////////////////////////////////////////////////////////////////////////////
                            2-ببنید شما برای تولید موج مربعی با دیوتی سایکل های متفاوت از تایمر1 درمد phase correct استفاده کردید که به ترتیب مقادیر آرایه ای را درون رجیستر ocr آن قرار میدهید.
                            خوب ما میخواهیم سینوسی 50Hz بسازیم( 20 میلی ثانیه) و یک آرایه 256 تایی داریم که به درستی مقدار دهی شده (دقت کردم اونجاهایی که مشتق سینوسی به بینهایت میل میکند سریع میگذرد و اونجاهایی که مشتق سینوسی نزدیک به صفر میشود(قله و دره) چند بار در آرایه مقدارش گذاشته شده (کند تر میگذرد)) خوب این قبول
                            برای خواندن 256 مقدار در 20میلی ثانیه باید هر کدام را
                            20000us/256 = 78.125us
                            خواند که شما از برای اینکار از تایمر0 در مد ctc استفاده کردید که اینم قبول
                            حالا شما تایمر 1 را جوری تنظیم کردید(جدای از بحث مقدار ocr ) که هر سیکل آن
                            125ns*510 = 63.75us
                            طول میکشد. وچون در مد phase correct تغییر در ocr هنگام top رخ میدهد و تایمر در هر جایی که باشد ، حداکثر زمانی که طول میکشد که به top بعدی برسد به اندازه 510 کلاک تایمر یا همون 63.75 میکرو ثانیه است پس امکان ندارد تغییری در مقدار ocr رخ دهد و تایمر1 تغییر را اعمال نکند،چون
                            78.125us >= 63.75 us
                            خوب پس نتیجه میگیریم همیشه باید زمان یک پریود تایمر1 کمتر از زمان تغییر در مقدار ocr باشد که مشکلی پیش نیاید. پس در این برنامه خاص همیشه باید رابطه زیر برقرار باشد:
                            timer1 period <=78.125us
                            پس تو این بازه ما مجازیم هر مقداری را انتخاب کنیم، که شما مقدار 63.75 را انتخاب کردین چون کلاک میکرو 8 مگاهرتز است ودقیقا همینو به تایمر دادید . حالا فرض می کنیم کلاک تایمر ما از منبع کلاک خارجی است و می تونیم هر مقدار پریودی را باش بسازیم.
                            سوال من این است که کم یا زیاد بودن این مقدار در خروجی چه تفاوتی دارد؟
                            درضمن من حساب کردم :
                            1/63.75us ~ 15.686 KHz
                            که فکر می کنم بی ربط به سوال اولم نیست. منظورتون از فرکانس کریر همین است؟ولی خوب این یعنی چی؟
                            ////////////////////////////////////////////////////////////////////////////////////////
                            3- من دسترسی به اسکوپ ندارم و می خوام یک نگاه به آرایه زیر بندازید(اگه جای اون آرایه 256 تایی این آرایه 512 تایی رو که خودم همینجوری دستی نوشتم بزاریم موج مثلثی ایجاد میشه؟)
                            البته که اگر مقادیر تایمرها رو تغییر ندیم دیگه فرکانس خروجی 50Hz نمیشه و بجاش 25Hz میشه.
                            کد:
                            flash unsigned char movj[512]={
                            0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
                            0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
                            0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
                            0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
                            0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
                            0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
                            0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
                            0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
                            0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,
                            0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,
                            0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,
                            0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,
                            0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,
                            0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,
                            0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,
                            0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,
                            0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,
                            0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,
                            0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,
                            0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,
                            0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,
                            0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,
                            0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,
                            0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,
                            0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
                            0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
                            0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
                            0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
                            0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
                            0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
                            0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
                            0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f};
                            ///////////////////////////////////////////////////////////////////////////////////////////////////////
                            4- برنامه ی دسکتاپی که این آرایه ها را تولید میکنه رو میشه معرفی کنید
                            /////////////////////////////////////////////////////////////////////////////////////////
                            5- اون فیلتر rc که گفتید بین خروجی و گراند میزاریم را میشه بگید چجوریه؟(چگونگی اتصال)

                            ببخشید اگه یکم طولانی شد . ممنون میشم پاسخ بدید.
                            راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                            کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                            نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                            http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                            انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                            دیدگاه


                              پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                              1و2- فرکانس Carrier برابر با 15686.27 و همان فرکانس موج مثلثی تولید شده در سخت افزار pwm است و مقدار آن حاصل تقسیم فرکانس کلاک بر 510 است. در مورد ایجاد فرکانس 50 هرتز هم یک جدول 256 تایی باید با فرکانس 12800= 256*50 هرتز خوانده شود. از آنجایی که از TIMER0 به این منظور استفاده شده و 625= 8000000/12800 به دلیل 8 بیتی بودن این تایمر، امکان قرار دادن عدد 624 در OCR0 وجود ندارد. به همین دلیل عدد 124 برای OCR0 در نظر گرفته شده و یک شمارنده نرم افزاری در روتین وقفه، به ازای هر 5 بار وقفه یکبار عمل افزایش index جدول مقادیر سینوسی را انجام می دهد.

                              3- جدول ظاهرا یک موج مثلثی را تولید می کند که با فرض مورد نظر شما، به دلیل دو برابر شدن اعضای آرایه فرکانس 25 هرتز را ایجاد خواهد کرد. البته در این شرایط باید متغیر index از نوع 16 بیتی تعریف شود و برای مرز آن هم شرط گذاشته شود. همچنین اگر تولید موج مثلثی مد نظر باشد اصولا نیازی به استفاده از جدول نیست و با کاهش و افزایش یک متغیر بصورت خطی هم می توان موج مثلثی را تولید کرد.

                              4- یکسری برنامه در زمان های گذشته با QBASIC برای این منظور نوشته بودم که این آرایه را تولید می کرد.

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

                              دیدگاه


                                پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                                ممنون از پاسختون . ببخشید مثل اینکه من منظورم رو از سوال های 1 و 2 بد رسوندم

                                در رابطه با فرکانس کریر : با تغییر در فرکانس موج کریر ( در اینجا فرکانس تایمر 1) باعث چه تغییری در خروجی میشود . مثلا اگر ما کلاک timer1 را بیشتر میگذاشتیم(مثلا با اعمال کلاک خارجی) و فرکانس موج کریر را روی 20 کیلو هرتز تنظیم میکردیم ، در خروجی چه تفاوتی بوجود می آمد؟ مثلا وارد کردن یک اوسیلاتور 10.2 مگاهرتزی به ورودی کلاک تایمر 1
                                راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                                کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                                نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                                http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                                انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                                دیدگاه

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