اطلاعیه

Collapse
No announcement yet.

(LPC 1769 (cortex - m3

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

    #16
    پاسخ : (LPC 1769 (cortex - m3

    نوشته اصلی توسط محمد جواد شفیعی
    خوب این از این.حالا سوال دومیه چی(ست کردن پین)؟؟؟؟
    یعنی هیشکی بلد نیست؟؟(البته قصد توهین ندارم)
    درسته سوالم خیلی سطح پایینه اما لطفا برای جواب وقت بذارین :cry2:
    مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

    هیچ وقت از یادگیری نترس
    [move] :agree: :biggrin: :sad: :rolleyes:[/move]

    دیدگاه


      #17
      پاسخ : (LPC 1769 (cortex - m3

      سلام
      مهندس برای کنترل کردن GPIO ها چند تا رجیستر هست(1)
      مثلا FIODIR مثل DDR میمونه تو AVR . خوب این رجیستر میگه ورودی باشه یا خروجی (2)
      رجیستر FIOSET میاد چیکار میکنه ، اگه شما اون پین رو بعنوان خروجی تعریف کرده باشین ( در رجیستر FIODIR ) با ست شدن بیت متناظرش در این رجیستر اونو یک میکنه (3)
      برای صفر کردن همون پینی که ستش کردیم هم از رجیستر FIOCLR (با ست کردن همون بیت متناظر ) استفاده میکنیم(4)
      این در حالیه که تو AVR کار این دور رجیستر رو تنهایک رجیستر (رجیستر PORT ) انجام میداد (5)
      فک کنم واست دیگه روشن شده باشه
      یاعلی
      در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

      دیدگاه


        #18
        پاسخ : (LPC 1769 (cortex - m3

        راستی از iar کوچ کردم به keil
        این رو گرفتم.اما یاید چجوری توی این ریجستر ها چیزی نوشت؟
        من همیشه توی کد های مختلف مشکل داشتم.مثل hex و این جور چیزا
        مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

        هیچ وقت از یادگیری نترس
        [move] :agree: :biggrin: :sad: :rolleyes:[/move]

        دیدگاه


          #19
          پاسخ : (LPC 1769 (cortex - m3

          مهندس متوجه شدی؟
          در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

          دیدگاه


            #20
            پاسخ : (LPC 1769 (cortex - m3

            توی برنامه های نمونه ای که گرفتم بعضی از پین ها این طوری بود.
            xxxxxxxxxxxxx=0x55
            یا
            xxxxxxxxxxxxx=0xaa
            بعصی ها هم
            xxxxxxxxxxxxxx=0x0000000f
            بعضی هام
            xxxxxxxxxx=1
            اون x ها هم آدرس بود مثل
            LPC_GPIO2 -> FOIDIR
            مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

            هیچ وقت از یادگیری نترس
            [move] :agree: :biggrin: :sad: :rolleyes:[/move]

            دیدگاه


              #21
              پاسخ : (LPC 1769 (cortex - m3

              نوشته اصلی توسط محمد جواد شفیعی
              توی برنامه های نمونه ای که گرفتم بعضی از پین ها این طوری بود.
              xxxxxxxxxxxxx=0x55
              یا
              xxxxxxxxxxxxx=0xaa
              بعصی ها هم
              xxxxxxxxxxxxxx=0x0000000f
              بعضی هام
              xxxxxxxxxx=1
              اون x ها هم آدرس بود مثل
              LPC_GPIO2 -> FOIDIR
              مهندس کامل بنویس
              اینطوری متوجه نمیشم چی به چیه
              در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

              دیدگاه


                #22
                پاسخ : (LPC 1769 (cortex - m3

                درکل منظورم این بود چجوری این رجستر ها رو مقدار دهی کنم.
                هرجا یجور مقدار داندن
                به کلی گیج شدم
                مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

                هیچ وقت از یادگیری نترس
                [move] :agree: :biggrin: :sad: :rolleyes:[/move]

                دیدگاه


                  #23
                  پاسخ : (LPC 1769 (cortex - m3

                  نوشته اصلی توسط محمد جواد شفیعی
                  درکل منظورم این بود چجوری این رجستر ها رو مقدار دهی کنم.
                  هرجا یجور مقدار داندن
                  به کلی گیج شدم
                  هرطوری که دوس داری. بالاخره یه رجیستر 32 بیتی دیگه و شما بیار به بیتاش مقدار بدی . میخای به صورت هگز یا بصورت بیتی
                  یسری به عملگرهای بیتی در c بزن
                  در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

                  دیدگاه


                    #24
                    پاسخ : (LPC 1769 (cortex - m3

                    الان مثلا در ریجستر FIOxDIR چجوری میشه یک نوشت؟
                    مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

                    هیچ وقت از یادگیری نترس
                    [move] :agree: :biggrin: :sad: :rolleyes:[/move]

                    دیدگاه


                      #25
                      پاسخ : (LPC 1769 (cortex - m3

                      LPC_GPIO2 -> FOIDIR = 0x hhhhhhhh

                      دیدگاه


                        #26
                        پاسخ : (LPC 1769 (cortex - m3

                        نوشته اصلی توسط vahid_22002
                        LPC_GPIO2 -> FOIDIR = 0x hhhhhhhh
                        یعنی من تو هر ریجستری این رو بنویسم به منزله 1 هست؟
                        ازکجا میتونم این دستورات رو پیدا کنم؟
                        مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

                        هیچ وقت از یادگیری نترس
                        [move] :agree: :biggrin: :sad: :rolleyes:[/move]

                        دیدگاه


                          #27
                          پاسخ : (LPC 1769 (cortex - m3

                          اگه c و خوندن library بلد باشی می تونی از تو کتابخونه های خود کیل پیدا کنی.

                          دیدگاه


                            #28
                            پاسخ : (LPC 1769 (cortex - m3

                            نوشته اصلی توسط محمد جواد شفیعی
                            یعنی من تو هر ریجستری این رو بنویسم به منزله 1 هست؟
                            ازکجا میتونم این دستورات رو پیدا کنم؟
                            نه دوست عزیز.
                            H اصلا معنی نداره!(فکر کنم ایشون به عنوان مثال گفتن)
                            اگه میخواین کل بیت هاش یک باشن باید جای H ، از F استفاده کنید.
                            مثلا تو AVR اگه میخواستین پورت B کل بیت هاش یک بشن این رو مینوشتین:
                            [code=c]PORTB = 0xFF;[/code]
                            ولی این جا چون پورت ها 32 بیتی هستن و همونطور که قبلا گفتن دستور ست کردن و ریست کردنش جداس، کار یکم پیچیده تره.
                            مثلا برای SET کردن پورت 0 اگه اشتباه نکنم یه همچین چیزی میاد:
                            [code=c]LPC_GPIO0->FIOSET = 0xFFFFFFFF;[/code]
                            و برای ریست کردنش ( 0 کردن )این کدو مینویسن
                            [code=c]LPC_GPIO0->FIOCLR = 0x00000000;[/code]
                            و مثلا اگه اشتباه نکنم کد پایین کاری انجام نمیده.
                            [code=c]LPC_GPIO0->FIOSET = 0x00000000;[/code]
                            فقط من خیلی وقته که کد GPIO ننوشتم و رجیستر ها رو یادم نیست. اگه اشتباهی هست دوستان تصحیح کنن.
                            سوالی هم دارین بگین.

                            دیدگاه


                              #29
                              پاسخ : (LPC 1769 (cortex - m3

                              ممنون از لطف همتون :rolleyes: :redface:
                              من توی اون قسمت های آخرش مثل
                              کد:
                              0xFFFFFFFF
                              مشکل دارم
                              بازم ممنون
                              مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

                              هیچ وقت از یادگیری نترس
                              [move] :agree: :biggrin: :sad: :rolleyes:[/move]

                              دیدگاه


                                #30
                                پاسخ : (LPC 1769 (cortex - m3

                                (شاید بیشتر این مطالبی که پایین هست رو بدونید، ولی من محض احتیاط بعضی چیزارو هم میگم تا اگه بلد نیستین، گمراه نشین.)
                                خوب این یه کد HEX هست.
                                یه رجیستر 32 بیتی، از 8 تا نیبل (واحدای 4 بیتی) تشکیل شده.
                                هر نیبل هم که میتونه از مقدار 0 تا F باشه.

                                وقتی ما دستور
                                LPC_GPIO2->FIODIR = 0xFFFFFFFF;
                                رو مینویسیم، میگیم که کل این 4 بیتی ها برابر F بشن. یعنی کل بیت های این رجیستر برابر با 1 بشن.
                                مثلا اگه بخوایم فقط 1 بیت اول 1 بشه، باید بنویسیم
                                LPC_GPIO2->FIODIR = 0x00000001;
                                یا اگه بخوایم 4 بیت اول با هم 1 بشن جای یک F رو قرار میدیم.
                                یه راه دیگه هم هست که دسترسی بیت به بیت رو ساده تر میکنه. اون هم استفاده از Shift هست.
                                مثلا اگه اشتباه نکنم، برای 1 کردن بیت هشتم، میشه این دستور رو نوشت.
                                کد:
                                LPC_GPIO2->FIODIR = (1<<8)
                                تو این روش، اگه در نظر بگیریم که کد باینری عدد 1 برابر با:
                                00000000000000000000000000000001
                                هست، بعد از شیفت دادن برابر با
                                00000000000000000000000100000000
                                میشه که یعنی بیت 8 (در واقع نهمه چون از 0 شروع میشه) از وضعیت 0 به 1 تغییر پیدا کنه.


                                حالا این که چرا این بیت هارو صفر و یک میکنیم: این رجیستر ها هر کدوم از بیت هاشون برای یه کاری استفاده میشن. مثلا رجیستر FIODIR ، ورودی یا خروجی بودن رو تعیین میکنه.
                                مثلا بیت 0 از رجیستر LPC_GPIO2->FIODIR در واقع وضعیت پین P2.0 رو تعیین میکنه.
                                یا رجیستر FIOSET میگه که کدوم پین ها باید 1 بشن و رجیستر FIOCLR هم میگه که کدوما باید 0 بشن و FIOPIN وضعیت پین رو مشخص میکنه و ...
                                حتی بعضی از رجیستر ها برای کار های پیچیده تری به کار میرن که همه این ها تو User's Manual نوشته شده.
                                (اگه دوستان مشکلی تو این متن میبینن لطفا تصحیح کنن)

                                دیدگاه

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