اطلاعیه

Collapse
No announcement yet.

سوالات کتاب at91 (نص)

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

    #31
    پاسخ : سوالات کتاب at91 (نص)

    توی دیتا شیت نوشته مقدار کلاک اهسته بین22 تا 42 کیلو هرتز است و برای راه اندازی اولیه میکره استفاده میشه تا pll و main clk فعال بشند. البته بعد از راه اندازی میکرو هم میشه از این فرکانس برای کل برنامه استفاده کرد در صورتی که main osicllator غیر فعال باشه یا رجیستر pmc-mckr
    • RC Oscillator ranges between 22 KHz and 42 KHz
    • Main Oscillator frequency ranges between 3 and 20 MHz
    • Main Oscillator can be bypassed
    • PLL output ranges between 80 and 200 MHz

    pllclockin همان خروجی main osicllator است که در واقع همان مقدار کریستالی که گذاشتید میشه
    کلاک قابل برنامه ریزی برای اینه که اگه خواستید از دستگاهای جانبی استفاده کنید ،از طریق میکرو کلاک مورد نیازشو درست کنید و از پایه های pckx این کلاک را دریافت و به قطعه جانبی بدید(جدول 4-14)البته فرکانس های خاصی رو فقط میشه تولید کرد pmc_pckx
    حالت بی کاری هم که از اسمش معلومه
    اگه فعال باشه فکر کنم فرکانس 48 مگاهرتز تو خروجی میده و اونا بی اثر میشن
    اگه شما در رجیستر pmc-pcer نگاه کنید pid1 و pid 0 رو نمیشه مقدار داد چون فکر می کنم باید فعال باشن

    دیدگاه


      #32
      پاسخ : سوالات کتاب at91 (نص)

      سلام
      1. این یک RC داخلی می باشد و فرکانس آن تقریبا 32KHZ است. همیشه هم فعال می باشد و نمی شود آنرا غیر فعال کرد. به طور مثال اگر به هر دلیلی قطع شود با توجه به مطالب ریست به نظرم میکرو به مشکل برخورد کند و دیگه راه اندازی نشود. در ضمن RTT فقط از این منبع به عنوان کلاک استفاده می کند.
      2. درسته منظور از PLLCLKIN همون اسیلاتور اصلی می باشد و برابر کریستال متصل به میکرو هست.
      3. کلاک قابل برنامه ریزی برای آن استفاده می شود که مثلا یک قطعه خارج از میکرو دارید و نیاز به کلاک دارد می توانید توسط این کلاک های قابل برنامه ریزی کلاک مورد نیاز آنرا درست کنید. مثلا ADC های خارجی. مثال 4-6 صفحه 146 را ببین.
      4. در این میکروها برای حالت بی کاری شما می توانید کلاک هر قسمت را غیر قعال کنید و توان مصرفی میکرو را کاهش دهید در این میان حتی شما می توانید کلاک پردازنده اصلی را هم غیرفعال کنید و میکرو دیگر هیچ کاری انجام نمی دهد و وارد مد بی کاری می شود. و با وقوع وقفه کلاک پhttp://www.eca.ir/forum2/index.php?action=post;topic=49931.30;num_replies=3 2#ردازنده به صورت خود کار فعال می شود و وارد روتین وقفه می شود. مثال 14-6 صفحه 391 را ببین.
      5. واحد USB نیاز به 2 کلاک دارد یکی 48MHZ می باشد که این کلاک حتما باید 48M باشد که این توسط رجیستر PMC_SCER فعال می شود حالا این واحدی که در شکل 4-21 (USB CLOCK CONTROLLER) می بینید را توسط همین بیت فعال می کنید. ورودی این واحد از کلاک خروجی PLL می باشد و شما توسط بیت های جدول USBDIV می توانید آن مضارب کلاک را به ورودی این واحد اعمال کنید. که وظیفه این واحد می باشد که آنرا به 48MHZ برسوند. کلاک دومی که واحد USB نیاز دارد همان کلاک MCK می باشد که هر مقداری که شما تنظیم کرده باشید را استفاده می کند برای فعال کردن این کلاک از رجیسنر PMC_PCER و جدول 4-7 استفاده می شود.
      6. کلاک وقفه FIQ (بیت 0) و همچنین کلاک SYSC را اصلا نمی شود غیر فعال کرد و همیشه فعال می باشد این جدول که برای PIDها می باشد کلی می باشد مثلا در (AIC ) وقفه ها از همین این جدول استفاده می شود.

      دیدگاه


        #33
        پاسخ : سوالات کتاب at91 (نص)

        با سلام .... تشکری مجدد از همه اساتیدی که پاسخ دادن :smile:
        یکی از این اساتید گفتن صفحه 146 مثال 4-6 رو نگاه کنم ! ( اقا یه رحمی کنید :cry2: من تازه 123 ام :read:برم 146 !!! :eek
        حالا هر جوری بود خوندم هااااا ولی از همین برنامه ساده سوال پیش اومد !!!!! که عرض میکنم .
        با توجه به توضیحات صفحه 129 هر پایه میکرو میتونه 3 حالت داشته باشه : 1- ورودی/خروجی 2-حالت A و حالت B
        الف - مثلا این PCK تو حالت B هست (طبق جدول 4-14 صفحه 131 )حالا میخوام بدونم این کلاک برنامه ریزی شده که در واقع ضریبی از منبع کلاک قابل برنامه ریزی شده هست فقط رو پایه های PA17(PCK1 ) PA6(PCK0 PA31(PCK2 ) PA18(PCK2) PA21(PCK1 میتونه فرستاده بشه ؟یا اینکه میتونیم یه پایه غیر از این ها رو خروجی تعریف کنیم بعد یه جوری کلاک قابل برنامه ریزی رو روش بفرستیم ؟!
        ب- تو جدول 4-14 صفحه 131 فرق بین این PCK 1 که دوتا هست چیه ؟؟؟ اخه برای یکی اش جلوی توضیحات یه چیزی نوشته !AD0
        ت-در همین برنامه چرا در خط یازدهم PIO_PDR=1<<31 چرا ورودی / خروجی پایه 31 رو غیر فعال کرده ؟ مگه نباید این پایه رو خروجی تعریف کنیم ؟ ناسلامتی میکرو میخواد از جونش مایه بذاره :angry: کلاک بده بیرون هاااااا اون هم به یکی غیر خودش !!!
        کلا چه موقع باید ورودی / خروجی رو غیر فعال کنیم ؟؟ یعنی اگه بخوایم از وضعیت A و B استفاده کنیم باید حتما ورودی / خروجی آن پایه مورد نظر رو غیر فعال کرد ؟؟؟
        و این که کاربرد رجیستر PIO_MDER (رجیستر فعال کننده چند منظوره ) چیه ؟؟ فقط وقتی میخوایم از حالت A و B استفاده کنیم باید حتما اون پایه مورد نظر رو توی این رجیستر یک کنیم ؟؟؟
        باز هم تشکرررررررررررررررررررررررررررررررررررررر البته فصل 4 هنوز سوال دارم هاااااااا حالا بعدا میپرسم !! فعلا همین بسه !!!





        مصادیق اظهار محبت به همسر
        بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
        ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
        اثر قصه گویی برای کودکان

        دیدگاه


          #34
          پاسخ : سوالات کتاب at91 (نص)

          اون مثال را گفتم که نمونه برنامه مربوط به این قسمت را ببینید.
          آره دیگه PCKx ها یکی از حالت های A ,B می باشند و فقط بر روی آن پایه هایی که گفتید می توان از آنها استفاده کرد. و روی پایه دیگه ای نمی شود از این ها استفاده کرد.
          فرقی بین آنها نیست مثلا برای PCK1 چه از پایه PA17 یا PA21 استفاده کنید هیچ فرقی ندارد و با توجه به سخت افزارتون می توانید از هر کدام که می خواهید استفاده کنید. اون AD0,AD1,AD2,AD3 چهار کانال ADC می باشد و هیچ ربطی به حالت های A,B ندارد و AD4,AD5,AD6,AD7 چهار پایه مجزا دارد در شکل صفحه 101 این پایه را می بینید.
          چون این کلاک در حالت های A,B است باید این پین را از حالت I/O خارج کرد و در یکی از حالت های A,B قرار داد و با توجه به حالتی که فعال شده خود سخت افزار میکرو آنرا خروجی در نظر می گیرد.
          آره. هر زمانی که از هر پین در حالت های A,B استفاده می کنید باید آنرا از حالت I/O غیرفعال کرد.
          آره.هر وقت که از هر پین در حالت های A,B استفاده می کنید در رجیستر PIO_MDER هم باید آن پین را فعال کنید.

          دیدگاه


            #35
            پاسخ : سوالات کتاب at91 (نص)

            سلام ... من تا فصل چهار خوندمم :wow: پنچ هم که کمپایلر بود ! فعلا تا یه خورده برنامه نویس ام خوب بشه بی خیال البته خوندمش ها .. فصل شش هم فعلا تا خرید یه هدر برد خونده نمیشه !!!!! :mrgreen: میریم فصل هفت تایمر بلادرنگ ..
            1- افزایش مقدار این تایمر در لبه بالا رونده هست ؟؟؟؟ رجیستری هست که مشخص کنیم افزایش مقدار تایمر در کدام لبه اتفاق بیفته ؟؟بالا رونده یا پایین رونده یا هر دولبه ؟؟

            2- در صورت سوال صفحه 182 خواسته شده که یک موج مربعی متقارن با دوره تناوب 1 ثانیه ای روی PA0 ایجاد شود اما به نظر من تو برنامه یه موج مربعی متقارن با دوره تناوب 4 ثانیه ایجاد میشود !! حالا میگم هر جاش اشتباه بود ممنون میشم بفرمایید ..
            با توجه به این که مقدار دهدهی بیت های RTPRES در رجیستر RTT_MR ؛ 1634 در نظر گرفته شده بنابراین دوره تناوب تایمر بلادرنگ 2 ثانیه هست .. از طرفی مقدار افزایشی تایمر در متغیر i ریخته میشود بنابراین با امدن اولین لبه بالارونده متغیر i برابر یک میشود و از طرفی if دوم صحیح است پس PA0 بالا میاید (HIGH) میشود اما صفر شدن ان دو ثانیه بعد اتفاق میفتد زیرا دومین کلاک بالا رونده تایمر بلادرنگ 2 ثانیه بعد است که در این حالت i=2 میشود و if اول اتفاق میفتد پس PA0 پایین میاد (LOW) میشود پس روی PA0 یک موج مربعی متقارن با دوره تناوب 4 ثانیه ایجائ میشود نه موج مربعی متفارن 1 ثانیه ای ؟؟ درسته ؟؟ یا اشتباه گفتم ؟؟؟ oo: وای دو تا خط برنامه چه قدر براش نوشتم هااااااااااااااااا :mrgreen:
            3- یه سوال هم از برنامه 4-5 صفحه 144 دارم من اصلا متوجه نشدم این دو تا کلید جه چوری سرعت رو کم و زیاد میکنن !!!! اگه یه ذره توضیح بدید ممنون میشم !! یه خورده بگید خودم میگیرم چی شده !! :rolleyes:
            باز هم تشکر از همه کسانی که پاسخ میدن :applause:
            مصادیق اظهار محبت به همسر
            بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
            ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
            اثر قصه گویی برای کودکان

            دیدگاه


              #36
              پاسخ : سوالات کتاب at91 (نص)

              1. این یک تایمر ساده است و بیشتر برای اندازه گیری زمان استفاده می شود و فکر کنم با لبه بالا رونده افزایش می یابد و نمی شود آنرا تغییر داد.
              2. مقداری که در RTPRES میریزیم ، دوره تناوب را تعیین می کند یا به عبارتی فرکانس کلاک تایمر را تعیین می کند. با توجه به فرمول 32718HZ تقسیم بر 16384 می شود 2. اما این 2 ثانیه نیست 2 هرتز می باشد پس می شود 0.5 ثانیه دوره تناوب. بقیه داستان هم به همون صورتی می باشد که گفتید.
              3. یک متغییر L تعریف شده که با فشار دادن کلید ها مقدار L تغییر می کند درنتیجه چون for های تاخیر به L وابسته است در نتیجه سرعت خاموش و روشن کم و زیاد می شود.

              دیدگاه


                #37
                پاسخ : سوالات کتاب at91 (نص)

                اما این 2 ثانیه نیست 2 هرتز می باشد
                خیلی ببخشید ولی در صفحه 180 انتهای صفحه گفته شده که دوره تناوب کلاک تایمر بلادرنگ برابر با کلاک اهسته بر مقدار RTTPRES در رجیستر RTT_MR هست !!!! یعنی این جمله اشتباه هست ؟؟ باید باشه فرکانس ؟
                باز هم تشکرررررررررررررررررررررررررررررررر من از شما خیلی چیز یاد گرفتم ممنون :applause:
                مصادیق اظهار محبت به همسر
                بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                اثر قصه گویی برای کودکان

                دیدگاه


                  #38
                  پاسخ : سوالات کتاب at91 (نص)

                  نمیشه گفت اشتباه به نظرم ، نیت مهم است :biggrin: بالاخره توسط این مقدار فرکانس یا به عبارتی دوره تناوب کلاک تنظیم می شود.

                  دیدگاه


                    #39
                    پاسخ : سوالات کتاب at91 (نص)

                    البته اینو تو صفحه ی 178 همون کلاک نوشته

                    دیدگاه


                      #40
                      پاسخ : سوالات کتاب at91 (نص)

                      سلام.. امروز فصل هشت رو شروع کردم ! مغزم هنگ کرد :-(( با خودم گفتم برم جلو بهتر میشه بهتر که نشد هیچ بدتر شد خلاصه گفتم برم سراغ مثال هاش شاید بهتر شد باز هم ................ :angry:
                      مثال 8-2 صفحه 218 حالت اول :
                      1- اول گفته رجیستر مقایسه RC بی تاثیر هست اما تو برنامه اومده بهش مقدار داده ؟؟؟ خوب اگه کاریه ای نیست چرا برنامه رو شلوغ کرده الکی ؟؟!!!!! ( البته واقعا هم بی تاثیرش کرده چون بیت های 18 و 19 (ACPC) از رجیستر TC_CMR رو صفر کرده ) اما نمیدونم وقتی بی تاثیر هست چرا بهش مقدار داده ؟؟؟
                      2- به نظر من اصلا برنامه ای که نوشته اول اینکه ضریب وظیفه اش (Duty Cycle) پنجاه درصد نیست !!! فرکانسش هم 150kh نیست !! حالا من میگم بفرمایید کجاش اشتباه کردم :
                      هدف این هست که پالس با فرکانس 150 کیلو هرتز و دوره تناوب 6.667 میکرو ثانیه ایجاد کنیم یعنی نیم سیکلش میشه 3.3335 میکرو ثانیه . با توجه به برنامه کلاک تایمر 1/8 کلاک mck هست یعنی کلاک تایمر 6006857 هرتز هست پس دوره تناوبش 0/16648 میکرو ثانیه میباشد یعنی اگه تایمر 20 تا بشماره 3.3335 میکرو ثانیه طول میکشه (یعنی نصف دوره تناوب پالس صورت سوال ). اما در برنامه RA=10 هست یعنی بعد از گذشت تقریبا 1.66 میکرو ثانیه پایه PA0 تغیر وضعیت میده (با فرض این که حالت اولیش صفر بوده حالا یک میشه )از طرفی چون RC بی تاثیر هست تایمر تا 0XFFFF می شماره بعد ریست میشه دوباره از صفر شروع به شمارش میکنه وقتی به 10 رسید تازه دوباره LOW میشه یعنی PA0 تقریبا 1.66 میکرو ثانیه LOW هست و تقریبا به اندازه 10910 میکرو ثانیه HIGH هست !!! حالا نمیدونم درست گفتم یا نه چون واقعا مغزم هنگ کرد این فصل رو خوندم !!!!!! کلی از جاهاش هم متوجه نشدم که بعدا میپرسم !!!! حالا این مثال بد جوری مغزم رو داغون کرده هااااااا :cry2: oo:
                      جا داره این جا روز معلم رو به همه اساتید تبریک بگم بخصوص اساتید خودم ..... انشالله که همیشه سلامت باشن و خداوند روز به روز بر اطلاعاتشون بیفزاید ..... اجرکم عند الله ( یعنی اجر شما با خدا )
                      مصادیق اظهار محبت به همسر
                      بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                      ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                      اثر قصه گویی برای کودکان

                      دیدگاه


                        #41
                        پاسخ : سوالات کتاب at91 (نص)

                        سلام، تایمرها چون یک خورده حالت های مختلفی دارد باید هر کدام را جداگانه بررسی کنی و با مثال ها بری جلو که بهتر جواب بگیری.
                        1. گفته رجیستر RC بر روی مسیر TIOA0 تاثیری ندارد نه اینکه بر روی کل کارکرد تایمر تاثیر ندارد!!!! در این برنامه از حالت WAVSEL=10 استفاده کرده که طبق مطالب صفحه 197 تایمر تا RC می شمارد و سپس صفر می شود.
                        2. اولا شما به شکل خود مثال و فرمول های نوشته شده دقت کنید. البته به نظرم یک اشکال چاپی هم در فرمول آخر که RC را بدست آورده هست که البته از برنامه می شود این را متوجه شد و یا با تقسیم کردن ها می بینید که در فرمول RC را 2 نوشته در صورتی که 20 می باشد اما در برنامه همان 20 را نوشته برای RC. به طور خلاصه تایمر از 0 شروع به شمارش می کند تا به RA=10 برسد آنگاه TIOA0 را تغییر وضعیت می دهد که با فرض اینکه مقدار TIOA0 صفر می باشد به یک تبدیل می شود. سپس تایمر افزایش می یابد تا RC=20 آنگاه دوباره از 0 شروع به شمارش می کند تا دوباره به RA=10 برسد بعد TIOA0 تغییر وضعیت میدهد (صفر می شود). تا اینجا نیم سیکل که HIGH بوده است رخ داده است که مدت زمان آن 20 تا می باشد ( 10 تا از RA تا RC و 10 تا از 0 تا RA) مدت زمان این HIGH برابر 20×0.16648 میکرو ثانیه می شود که همان مقدار صورت سوال است. سپس همین وضعیت برای حالت LOW هم رخ می دهد. که در نتیجه فرکانس همان 150 کیلوهرتز می شود.
                        با توجه به شکل مثال و توضیحی هم که داده مقدار RA هیچ تاثیری بر روی ضریب وظیفه ندارد یعنی اگر همین مثال را برای مقادیر مختلف RA که کوچکتر از RC=20 باید باشد بررسی کنید همین شکل موج حاصل می شود.

                        دیدگاه


                          #42
                          پاسخ : سوالات کتاب at91 (نص)

                          سلام ... من هنوز هم ......
                          1- صفحه 186 منظور از دو ورودی خروجی همه منظوره چیه ؟؟
                          2-چرا تو مثال 8-2 صفحه 218 این همه اصرار داره که RA کمتر از RC باشه ؟؟ اشکال داره مثلا RA=20 بگیریم و RC=10 بگیریم اما تو برنامه RC رو برروی مسیر TIA0 حالت تغییر وضعیت رو انتخاب کنیم و RA رو بر روی مسیر TIA0 بی تاثیر کنیم ؟
                          3- چرا تو مثال 8-3 وقتی میخواسته از TIOB به عنوان خروجی استفاده کنه خوب طبق جدول 8-15 در صفحه 207 باید بیت های EEVT مخالف صفر باشه حالا میخواستم بدونم از بین اون 3 تای دیگه فرقی نداره کدام رو انتخاب کنیم ؟؟بعد تو همون جدول منظورش از اینکه مثلا وقتی مسیر TIOB خروجی میشه چرا جلوش XC0 یا XC1 یا XC2 رو نوشته ؟؟
                          4-منظور از کنترول پیشرفته وقفه چیه ؟؟؟ وقفه رو میدونم چیه ولی این که پیشرفته شده یعنی چی ؟؟ oo:
                          5-در مثال 8-5 صفحه 224 : آیا تو این مثال هدف خاصی داشته که در رجیستر TC_CMR به طور همزمان بیت های CPCSTOP و CPCDIS رو همزمان یک کرده ؟؟ منظورم اینه که اگه فقط بیت CPCSTOP رو یک میکرد مشکلی پیش میومد؟؟؟
                          6-در همین مثال 8-5 وقتی برای بار اول تایمر با مقدار رجیستر RC برابر میشه باعث یک شدن بیت CPCS در رجیستر TC_SR میشه خوب حالا میخوام بدونم برای بار دوم هم باید این بیت صفر بشه با توجه به این که رجیسترش فقط خوندنی هست چه جوری صفر میشه ؟؟؟؟
                          من دیگه روم نمیشه بپرسم !!!! :cry2:
                          با تشکر از پاسخ شما ........ انشالله خدا روز به روز علمتون رو زیاد زیاد زیاد .. کنههههههههههههههههههههههههه .... :smile:
                          مصادیق اظهار محبت به همسر
                          بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                          ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                          اثر قصه گویی برای کودکان

                          دیدگاه


                            #43
                            پاسخ : سوالات کتاب at91 (نص)

                            1. منظورش TIOA0,TIOB0 برای تایمر 0 و برای تایمر 1و2 هم به همین صورت است شکل صفحه 187
                            2. مقدار RA باید کمتر از RC باشد دوباره صفحه 197 را بخوان قسمت WAVSEL=10. اگر مقدار RA بزرگتر از RC باشد اصلا تایمر به RA نمی رسد چون RC کوچکتر است و در این حالت تایمر تا به RC برسد صفر می شود.
                            پس اولا باید RA کوچکتر باشد اگر قرار از آن برای تغییر وضعیت استفاده کنیم. حالا در حالتی که می خواهید از RC برای تغییر وضعیت استفاده کنید دیگر RA کاربردی ندارد و نیازی نیست اصلا به آن مقدار دهید. و برای مقدار RC با توجه به همان فرمول های همین قسمت RC=20 باید باشد. کلا برای ساخت این کلاک روش های مختلفی را می توانید استفاده کنید همانطور هم که می بینید در این مثال به دوصورت برنامه را نوشته.
                            3. خوب ببین وقتی قرار است از TIOB به عنوان خروجی استفاده کنیم پس دیگر نمی شود به عنوان تریگر خارجی استفاده شود. پس باید بیت های EEVT مخالف صفر باشد. اگر قرار است از XC0,XC1,XC2 به عنوان تریگر استفاده کنید باید آنها را درست انتخاب کنید و سپس توسط رجیستر TC_BMR منبع تریگر را انتخاب کرد ولی اگر قرار نیست از تریگر استفاده کنید پس هر مقداری مخالف صفر را می توانید برای EEVT انتخاب کنید.
                            اون جدول منظورش این هست اگر TIOB را به عنوان سیگنال رخداد خارجی استفاده کنید مسیر TIOB ورودی است. اما اگر XC0,XC1,XC2 را به عنوان سیگنال رخداد خارجی استفاده کنید مسیر TIOB خروجی است.
                            4. مثل اینکه الان که من ارشد می خونم بعضی درسا همون اسم کارشناسی رو داره فقط جلوش نوشته پیشرفته. ریاضی مهندسی پیشرفته، رباتیک پیشرفته، کنترل خودکار پیشرفته،.... :biggrin:
                            ببین همون فصل دوم صفحه 43 رخدادهای پردازنده ARM رو دیدی. خوب ببین هر رخدادی که در پردازنده رخ دهد با توجه به اون جدول به آن آدرس که نوشته پرش می کند. اما مثلا برای وقفه های مختلف که برای واحد های مختلف داخل میکرو هست آدرسی در نظر گرفته نشده است چون پردازنده ARM یک میکروپروسسور است نه میکروکنترلر (بر عکس 8051 و AVR که آدرس وقفه واحدها مشخص بود)!!!! حالا مثلا اگر تایمر وقفه دهد به کدام قسمت باید پرش کند؟؟؟؟ کلیه دستگاه های جانبی داخلی میکرو سیگنال وقفه آنها به واحد AIC وصل است و واحد AIC در آن آدرس های جدول رخدادهای پردازنده ARM می تواند هر آدرسی رو که بخواهد قرار دهد و پردازنده به آن خانه پرش کند. مثلا فرض کن دو وقفه تایمر و SPI داریم و هر دو از نوع IRQ هست حالا برای IRQ فقط یک خانه هست در این خانه آدرس روتین کدام یک از این وقفه ها باید باشد؟؟؟؟ در اینجا AIC با توجه به اینکه کدام وقفه آمده آدرس روتین آن وقفه را در آدرس IRQ قرار می دهد. در ضمن AIC این قابلیت را هم دارد که شما می توانید اولویت وقفه ها را هر طوری که می خواهید تنظیم کنید.
                            5. ببین اولا کار از محکم کاری عیب نمی کنه :biggrin: صفحه 191 را بخوان در این حالت که تریگر خاصی فعال نیست مشکل ندارد اما اگر تریگری فعال باشد و تریگر رخ دهد و کلاک فعال و STOP باشد کلاک به صورت خودکار START می شود اما اگر کلاک غیر فعال و STOP باشد کلاک نمی تواند START شود.
                            6. ببین همین مطالب رو در AIC هم داریم برای پاک کردن این بیت های رجیستر وضعیت فقط خواندی کافی است فقط یک بار این رجیستر را بخوانیم به صورت خودکار صفر می شود. یعنی همه بیت های یک شده با خواندن این رجیستر صفر می شود. اما بعضی مواقع به این صورت نمی باشد که در آنجاها ذکر کرده که این بیت به چه صورت صفر می شود.

                            دیدگاه


                              #44
                              پاسخ : پاسخ : سوالات کتاب at91 (نص)

                              سلام .. از اونجایی که ایرانی جماعت حوصله اش نمیشه بیش از دوبار یه مطلب رو بخونه !!!!!!! :read: فصل نهم یعنی مدولاسیون پهنای پالس رو شروع کردم ... خدا رو شکر این خیلی اسون تر بود !! :rolleyes:
                              1- در صفحه 228 گفته که این میکرو دارای 4 کانال مستقل هست اما چرا در صفحه 130 تعداد pwm هایی که در جدول 4-14 نوشته خیلی بیشتر از 4 تا هست ؟؟ مثلا اگر بخوایم همزمان از PWM3(PA7 و PWM3(PA14 به طور همزمان استفاده کنیم امکانش هست ؟؟؟ یعنی تو این حالت رجیستر هاش برای هر دو یکی هست ؟؟؟
                              2- در صفحه 231 گفته که بعد از ریست شدن میکرو همه کلاک های واحد سازنده کلاک که در صفحه 230 هم شکلش رو کشیده بجز کلاک اصلی MCK خاموش میشند و در ادامه گفته این در صورتی صادق هست که کلاک مربوط به PWM در واحد مدیریت توان یعنی PMC خاموش باشه !!!! حالا سوالم این هست که طبق شکل 9-1 در صفحه 228 ورودی کلاک واحد سازنده کلاک از PMC هست ..پس فکر کنم باید به جای این جمله
                              در صورتی صادق هست که کلاک مربوط به PWM در واحد مدیریت توان یعنی PMC خاموش باشه !!!!
                              باید باشه خاموش نباشد !!!!!! البته فکر میکنم ها اخه چیزی که گفته منطقی نیست !!!!
                              3-در صفحه 233 تو فرمول منظور از FCHANNEL_X_CLOCK ؛ همون کلاکی هست که توسط رجیستر PWMC_CMR که در صفحه 241 ؛ انتخاب میکنیم . هست ؟؟
                              4-در صفحه 236 گفته ضریب وظیفه نباید از مقدار 1/PWM-CPRD کمتر باشه به جای PWM باید چی بنویسیم ؟؟
                              5-در مثال ها وقتی میخواسته مقدار عددی رجیستر مربوط به ضریب وظیفه رو به دست بیاره یعنی رجیستر PWM_CDTY ؛ اومده ضریب وظیفه رو در مقدار عددی رجیستر مربوط به پریود که PWM_CPRD هست ضرب کرده که درست هم هست ولی چرا وقتی برای محاسبه ضریب وظیفه از فرمول صفحه 233 استفاده میکنم جوابها خیلی با هم فرق داره ؟؟؟ البته من در فرمول FCHANNEL_X_CLOCK ؛ همون کلاکی که توسط رجیستر PWMC_CMR انتخاب میکنم گذاشتم ... همین جا از همه کسانی که پاسخ میدن تشکر میکنم ... :smile:
                              مصادیق اظهار محبت به همسر
                              بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                              ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                              اثر قصه گویی برای کودکان

                              دیدگاه


                                #45
                                پاسخ : سوالات کتاب at91 (نص)

                                سلام
                                1. ببین کلا این سری دارای 4 تا PWM می باشد در جدول 4-14 صفحه 130 هم به این صورت است که شما مثلا برای PWM3 هم از PA7 و هم از PA14 می توانید استفاده کنید یعنی اگر این دو پایه را در حالت های A,B مربوطه فعال کنید وقتی از PWM3 استفاده می کنید این پین ها یک سیگنال مشابه دارد و انگار از داخل میکرو بهم وصل هستند. و شما با توجه به سخت افزارتون می توانید از هر کدام از دو پین بالا برای PWM3 استفاده کنید.
                                2. اولا گفته پس از ریست نمودن کنترلر PWM، همه کلاک های این قسمت به جز کلاک اصلی خاموش می شوند. نه ریست نمودن میکرو!!!!!!!. در مورد کلاک اصلی هم گفته اگر توسط واحد PMC کلاک واحد PWM خاموش باشد، این کلاک هم خاموش می شود.
                                4. باز دقت کن در خواندنت . گفته دقت ضریب وظیفه نمی تواند از مقدار .... کمتر باشد. که اینجا به نظرم اشتباه چاپی هست در اول خط دوم دقت کن باید در فرمول PWM_CPRD باشد.
                                5و3. در مورد فرمول چیزی به ذهنم نمیرسه باید چکش کنم ببینم چه جوری هست چون از فرموله زیاد استفاده نکردم :biggrin:

                                دیدگاه

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