اطلاعیه

Collapse
No announcement yet.

فرکانس تایمر در 1768

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

    فرکانس تایمر در 1768

    سلام
    برای اینکه معلوم بشه تایمر0 یا 1 با چه فرکانسی داره میشماره کدوم رجیسترو باید دستکاری کنم؟
    در مورد فرکانس خود کنترلر هم توضیح بدین
    من از هدر بورد های فروشگاه استفاده میکنم
    گفت که دیوانه نهی لایق این خانه نهی

    #2
    پاسخ : فرکانس تایمر در 1768

    سلام، کلا برای تنظیم هر چیزی و اصلا هر کاری که می خواید با میکرو انجام بدید باید datasheet میکرو رو بخونید.
    الان ممکنه که سوال شما رو کسی جواب بده و شاید یک library واسه کار تنظیم این فرکانس ها به شما پیشنهاد بشه ولی هر دفه که با یه قسمت جدید میکرو می خواید کار کنید دوباره باید بیاید سوال بپرسید و کلی معطل بشید.
    پیشنهاد من به شما اینه که اول یه نگاه کلی به datasheet بندازید که اطلاعات کلیه خیلی خوبی داره توش. بعد هم قسمت timer از user manual رو بخونید. خیلی آسون و کامل توضیح داده. با هر قسمت دیگه هم که بخواید کار کنید، با خوندن اون بخش
    کاملا بهش مسلط می شید. user manual رو می تونید از سایت nxp.com دانلود کنید. اگه هم گشتید و نبود به من بگید که میل کنم.
    ببخشید که جواب سوالتون رو ندادم ولی فکر می کنم با داشتن این فایل pdf می تونید جواب کل سوالاتون رو بگیرید و خیلی حرفه ای تر از میکرو استفاده کنید. من خودم اصلا این library هایی که اینجا و اونجا هست رو قبول ندارم. چون کار شما رو محدود می کنه.
    کار مستقیم با register ها سخت تره ولی خیلیی حرفه ای تره.

    در آخر هم اینو بگم که اگه پروگرامر j tag یا j link دارید می تونید خیلی ساده از keil گزینه deug رو انتخاب کنید و تمامی این فرکانس ها رو دقیق بدونید.
    ببخشید طولانی شد. فقط خواستم تجربه خودم رو با شما در میون بذارم. :smile:

    دیدگاه


      #3
      پاسخ : فرکانس تایمر در 1768

      آقا خیلی ممنون
      اگه میشه user manual رو برام ارسال کنین
      بابت راهنماییتون هم یه دنیا ممنون
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه


        #4
        پاسخ : فرکانس تایمر در 1768

        من لینکشو پیدا کردم. میزارم اینجا که همه استفاده کنن. لازم نیست که همشو بخونید ولی چند فصل اول رو پیشنهاد می کنم. انگلیسیش هم خیلی ساده هست.
        http://www.nxp.com/documents/user_manual/UM10360.pdf

        نکته بعدی هم اینکه کلا شما باید یه کریستال معمولا 12MHZ واسه میکرو های lpc1768 بزارید و با ست کردن pll یه فرکانس اصلی واسه میکرو بسازید. مابقی فرکانس ها از این فرکانس استفاده می کنن. فقط باید ضرایب رو براشون درست انتخاب کنید.
        واسه انتخاب ضرایب هم توی این pdf اگه دقت کنید هم فرمول داده هم فلوچارت کشیده. حتی مثال حل شده هم داره!!! کلا که این فایل واسه من حکم طلا رو داشته تا الان.

        دیدگاه


          #5
          پاسخ : فرکانس تایمر در 1768

          ممنون
          حالا یکی از برنامه های ساده ای که از روی همین رجیستر ها نوشتین رو برام میذارین؟
          گفت که دیوانه نهی لایق این خانه نهی

          دیدگاه


            #6
            پاسخ : فرکانس تایمر در 1768

            یک مثال خیلی ساده رو مطرح می کنم :
            مثلا فک کن که می خوایم پین P0.2 رو روشن کنیم یعنی set کنیم.
            خوب اول از همه باید به میکرو بگیم که این پین خروجی هست. این کار با رجیستر FIODIR انجام می شه. صفحه 123 pdf.
            این صفحه چی میگه؟ می گه FIOxDIR چیکار می کنه. x شماره پورت هست. پس در مثال ما می شه پورت 0 پس داریم : FIO0DIR
            جلویFIOxDIR0 نوشته :
            Bit 0 in FIOxDIR controls pin Px.0, bit 31 in FIOxDIR controls pin Px.31
            یعنی بین صفرم این رجیستر مربوط به بین 0 ام اون پورت و بیت 31 ام مربوط به پین 31 ام. پس برای تغییر در پین P0.2 باید بیت دوم رو تغییر بدیم. البته از صفر شروع می شه.
            خوب حالا چه مقداری به اون بیت بدیم؟ 0 و 1 می شه داد دیگه. باید دید که کدوم به معنی input و کدوم به معنی output هست؟
            جدول پایین صفحه 123 همینو می گه. میگه اگه 1 بدی یعنی output و اگه 0 بدی یعنی input.
            پس ما باید به بیت دوم از اون رجیستر مقدار 1 بدیم که بشه output:
            LPC_GPIO0->FIODIR |= 1<<2
            خوب حالا این کد رو توضیح می دم. اون اولش که نوشتی LPC_GPIO0 به این معنی هست که رجیستری که می خوای باهاش کار کنی مربوط به GPIO اونم پورت 0 هست. بعد اون فلش رو می نویسی. بعد حالا می گی می خوای FIODIR رو تغییر بدی.
            اگه بالا رو بخونی می بینی که من گفتم FIO0DIR ولی اینجا فقط نوشتم FIODIR و اون 0 رو نذاشتم. این مربوط به keil می شه که اون صفر رو جلوی GPIO باید بذاریم. یعنی همینکه نوشتیم GPIO0 دیگه لازم نیست توی FIODIR هم پورت رو مشخص کنیم.
            خوب می رسیم به |=
            ببین، شما می خوای بیت دوم از رجیستر FIODIR رو یک کنی. یعنی : 100
            ولی با این کار داری بقیه بیت ها رو 0 می کنی. ولی ما با بیت های دیگه کاری نداشتیم. فقط می خوایم بیت دوم رو تغییر بدیم. بازم می گم که از صفر میشمریم که بیت دوم می شه سومی از چپ.
            پس ما مقدارش رو or می کنیم با 100 که بقیه بیت ها تغییر نکنن. |= همین کارو می کنه.
            اون 2>>1 هم یعنی 1 رو 2 تا شیفت بده. که می شه همون 100 خب چرا نمی نویسیم 100؟ دلیلش اینه که اگه می خواستی پین 31 ام رو تغییر بدی باید یه 1 و 31 تا صفر جلوش می زاشتی. با این روش فقط می نویسی 31>>1
            خب تموم شد. حالا این پین خروجی شد.
            حالا می رسیم به اینکه مقدارشو یک کنیم. یعنی این پین رو set کنیم.
            از رجیستر FIOSET اسنفاده می کنیم. صفحه 125.
            دیگه به مفصلی بالا نوضیح نمی دم. کدش می شه:
            LPC_GPIO0->FIOSET = 1<<2
            اگه توضیحات pdf رو بخونی می بینی که این کد یعنی بیت دوم رو یک کن که یعنی P0.2 روشن می شه.

            دیدگاه


              #7
              پاسخ : فرکانس تایمر در 1768

              خیلی خوب توضیح دادی ممنون
              مثال از ارتباط سریال و pwm هم انجام دادی؟
              گفت که دیوانه نهی لایق این خانه نهی

              دیدگاه


                #8
                پاسخ : فرکانس تایمر در 1768

                آقای mehradmehrad چقدر خوب توضیح دادید.
                در مورد اترنت هم اگه میشه یه توضیحی بدید.
                Reveng will surely come... Your hard time are ahead
                // - - - - - - - - - -
                برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                // - - - - - - - - - -
                اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                // - - - - - - - - - -

                دیدگاه


                  #9
                  پاسخ : فرکانس تایمر در 1768

                  قابلی نداشت دوستان. اترنت انجام ندادم چون لایه فیزیکی رو باید جداگونه بزارید و یکم دردسر داره. برای توضیح سریال و pwm هم اگه وقت کنم حتما در خدمتم. ولی باز هم پیشنهاد می کنم که این قسمتا رو توی pdf بخونید.
                  معمولا برای راه اندازی قسمت های مختلف میکرو اول باید اون قسمت رو روشن کنید. بعد باید بهش کلاک برسونید. بعد اون قسمت رو تنظیم کنید. بعد هم start کنید.
                  یه چیز دیگه هم اینکه، مثلا در مورد FIODIR و FIOSET هردو زیرمجوعه LPC_GPIO بودن. اگه نمی دونید که رجیسترتون زیر مجموعه چی هست، توی متن فایل lpc_17xx.h اون رجیستر رو سرچ کنید. کدی رو که پیدا می کنید معمولا خط آخر اسم سرگروه رو نوشته.

                  دیدگاه


                    #10
                    پاسخ : فرکانس تایمر در 1768

                    ممنونم از اینکه سریع و جامع پاسخ دادید.
                    منظورتون از جدا گونه گذاشتن لایه ی فیزیکی چیه؟
                    در مورد سخت افزارها هم میشه توضیحی بدید؟ منظورم اینه که مثل منوالی که مرفی کردید منبعی هم برای سخت افزار معرفی کنید
                    مثلا سخت افزار USB
                    Reveng will surely come... Your hard time are ahead
                    // - - - - - - - - - -
                    برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                    // - - - - - - - - - -
                    اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                    // - - - - - - - - - -

                    دیدگاه


                      #11
                      پاسخ : فرکانس تایمر در 1768

                      نوشته اصلی توسط mehradmehrad
                      قابلی نداشت دوستان. اترنت انجام ندادم چون لایه فیزیکی رو باید جداگونه بزارید و یکم دردسر داره. برای توضیح سریال و pwm هم اگه وقت کنم حتما در خدمتم. ولی باز هم پیشنهاد می کنم که این قسمتا رو توی pdf بخونید.
                      معمولا برای راه اندازی قسمت های مختلف میکرو اول باید اون قسمت رو روشن کنید. بعد باید بهش کلاک برسونید. بعد اون قسمت رو تنظیم کنید. بعد هم start کنید.
                      یه چیز دیگه هم اینکه، مثلا در مورد FIODIR و FIOSET هردو زیرمجوعه LPC_GPIO بودن. اگه نمی دونید که رجیسترتون زیر مجموعه چی هست، توی متن فایل lpc_17xx.h اون رجیستر رو سرچ کنید. کدی رو که پیدا می کنید معمولا خط آخر اسم سرگروه رو نوشته.
                      برای اینکه قسمت سریال رو روشن کنم توی دیتاشیت زده بیت سوم از رجیستر PCONP رو یک کنید(صفحه63) اما تو هدر 1768 اسمی از این رجیستر نبرده.
                      حالا باید چیکار کنم؟
                      گفت که دیوانه نهی لایق این خانه نهی

                      دیدگاه


                        #12
                        پاسخ : فرکانس تایمر در 1768

                        برای pconp:
                        LPC_SC->PCONP

                        در مورد سوال اترنت:
                        شبکه های اترنت سه لایه هستن که لایه آخر رو بهشون می گن لایه فیزیکی که همون لایه ای هست که با RJ45 به کابل شبکه وصل می شه. میکرو این لایه رو نداره و باید آی سی های جداگونه بزارید. برای یک کار با اترنت ساده و بی دردسر من enc28j60 رو پیشنهاد می کنم.
                        خود این آی سی همه لایه ها رو داره. استفاده ازش هم ساده هست و توی انجمن هم خیلی بحث شده.
                        من خودم برای کارایی که احتیاج به شبکه دارن دیگه خودمو درگیر اترنت نکردم. مبدل های سریال به wifi توی بازار هستن که به راحتی شبکه wireless رو برای شما قابل استفاده می کنن. یعنی اینکه شما با میکروتون می تونین به شبکه های wireless وصل بشید و اطلاعات رد و بدل کنید.
                        در مورد usb هم این میکرو کاملا ساپورت می کنه و احتیاج به آی سی دیگه نیست. توی datasheet کامل راجب سخت افزار توضیح داده. کلا usb چهار تا پایه داره که 2 تاش واسه data هستن که اون پایه ها رو آی سی داره.

                        دیدگاه


                          #13
                          پاسخ : فرکانس تایمر در 1768

                          برای pconp:
                          LPC_SC->PCONP

                          در مورد سوال اترنت:
                          شبکه های اترنت سه لایه هستن که لایه آخر رو بهشون می گن لایه فیزیکی که همون لایه ای هست که با RJ45 به کابل شبکه وصل می شه. میکرو این لایه رو نداره و باید آی سی های جداگونه بزارید. برای یک کار با اترنت ساده و بی دردسر من enc28j60 رو پیشنهاد می کنم.
                          خود این آی سی همه لایه ها رو داره. استفاده ازش هم ساده هست و توی انجمن هم خیلی بحث شده.
                          من خودم برای کارایی که احتیاج به شبکه دارن دیگه خودمو درگیر اترنت نکردم. مبدل های سریال به wifi توی بازار هستن که به راحتی شبکه wireless رو برای شما قابل استفاده می کنن. یعنی اینکه شما با میکروتون می تونین به شبکه های wireless وصل بشید و اطلاعات رد و بدل کنید.
                          در مورد usb هم این میکرو کاملا ساپورت می کنه و احتیاج به آی سی دیگه نیست. توی datasheet کامل راجب سخت افزار توضیح داده. کلا usb چهار تا پایه داره که 2 تاش واسه data هستن که اون پایه ها رو آی سی داره.

                          دیدگاه


                            #14
                            پاسخ : فرکانس تایمر در 1768

                            ببخشید که 2 بار فرستاده شد.
                            من هدر رو نگاه کردم. pconp هست توش.
                            زیرش هم نوشته LPC_SC_TypeDef
                            این یعنی pconp زیرمجموعه LPC_SC هست.

                            دیدگاه


                              #15
                              پاسخ : فرکانس تایمر در 1768

                              نوشته اصلی توسط mehradmehrad
                              ببخشید که 2 بار فرستاده شد.
                              من هدر رو نگاه کردم. pconp هست توش.
                              زیرش هم نوشته LPC_SC_TypeDef
                              این یعنی pconp زیرمجموعه LPC_SC هست.
                              بله دقت نکردم
                              برای pwm هم اگه میشه توضیح بدین
                              گفت که دیوانه نهی لایق این خانه نهی

                              دیدگاه

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