اطلاعیه

Collapse
No announcement yet.

کمک : کار با پورت

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

    کمک : کار با پورت

    سلام به همه..... :nice: :nice:

    آقا من ARM رو تازه شورع کردم و فعلا هم رو LPC2103 اونم تو پروئوس کار میکنم (پول ندارم برم خودش رو بخرم :biggrin
    AVR هم کار کردم و مشکلی تو کار با AVR ندارم ( منظورم اینه پیش زمینه برای کار با میکرو تا حدودی دارم)

    حالا یه چند تا سوال ساده دارم
    تمام این سوال هام مربوط به LPC2103 میشه

    int i=0

    ++i) چه طوری یه پورت یا پین رو ورودی یا خروجی کنم ( تو AVR با ورودی کردن پورت حالت "های امپدانس" برای اون پورت وجود داشت و منم همین رو میخوام برای ARM)
    ++i) چه طوری میشه مقدار یه پورت رو خودند
    ++i) چه مقدار یه پین رو بخونم
    ++i)چه طوری یه پین یا کل یه پورت رو میتونم Pullup داخلی ش رو فعال کنم ( فعلا برای گذاشتن کلید می خوام)


    بعد من یه جایی شندیم که میشه مثلا پورت های یک ARM رو که 32 بیتی هست رو میشه مثلا به 4 تا پورت 8 بیتی تبدیل کرد درسته؟ اگه اره چه طوری
    والا تو دیتا شیت IOPIN و IODIR رو دیدم ولی نهمیدم برای چی هست که IOPIN برای خوندن اگه اشتباه نکنم

    خیلی ممنون

    #2
    پاسخ : کمک : کار با پورت

    اگه یه سرچ کوچولو بکنید یه چیزایی پیدا می کنید
    در این لینک GPIO را بخونید:
    http://www.eca.ir/forum2/index.php?topic=41142.0
    http://www.iranmicro.ir/forum/showpost.php?p=23391&postcount=4
    و
    http://www.iranmicro.ir/forum/showthread.php?t=5093
    و ....
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...

    دیدگاه


      #3
      پاسخ : کمک : کار با پورت

      نوشته اصلی توسط vahidsport
      سلام به همه..... :nice: :nice:

      آقا من ARM رو تازه شورع کردم و فعلا هم رو LPC2103 اونم تو پروئوس کار میکنم (پول ندارم برم خودش رو بخرم :biggrin
      AVR هم کار کردم و مشکلی تو کار با AVR ندارم ( منظورم اینه پیش زمینه برای کار با میکرو تا حدودی دارم)

      حالا یه چند تا سوال ساده دارم
      تمام این سوال هام مربوط به LPC2103 میشه

      int i=0

      ++i) چه طوری یه پورت یا پین رو ورودی یا خروجی کنم ( تو AVR با ورودی کردن پورت حالت "های امپدانس" برای اون پورت وجود داشت و منم همین رو میخوام برای ARM)
      ++i) چه طوری میشه مقدار یه پورت رو خودند
      ++i) چه مقدار یه پین رو بخونم
      ++i)چه طوری یه پین یا کل یه پورت رو میتونم Pullup داخلی ش رو فعال کنم ( فعلا برای گذاشتن کلید می خوام)


      بعد من یه جایی شندیم که میشه مثلا پورت های یک ARM رو که 32 بیتی هست رو میشه مثلا به 4 تا پورت 8 بیتی تبدیل کرد درسته؟ اگه اره چه طوری
      والا تو دیتا شیت IOPIN و IODIR رو دیدم ولی نهمیدم برای چی هست که IOPIN برای خوندن اگه اشتباه نکنم

      خیلی ممنون
      سلام
      برای ورودی خروجی کردن باید از IODIR استفاده کنی هر کدوم رو که یک کنی اون خروجی می شه بقیه هم ورودی
      مثل : پین 0 از پورت 1 رو خروجی کنید IODIR1=1
      برای خوندن یک پورت از دستور IOPIN استفاده می شود
      مثل: پورت صفر رو بخونید IOPIN0
      IOSET برای 1 کردن پین ها هست
      IOCLR برای صفر کردن پین ها هست
      اون حالت که گفتید می شه به چند بخش تقسیم کرد رو تو سری 23 بلدم اما تو این سری نمی دونم (فکر نکنم برای این سری هم باشه )
      برای PULL_UP هم فکر نکنم داشته باشه برای سری 23 به بالا داره
      اول برنامه هم LPC21XX رو include کن

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

      دیدگاه


        #4
        پاسخ : کمک : کار با پورت

        آقا ممنون ....

        فقط نمیتونم از IOPIN استفاده کنم

        تو برنامه مینویستم مثلا
        k=IOPIN0
        if ((k & 0x80000000)==0) IOSET0=0xff


        بعد پین 31 (اخرین پین پورت) رو با مقاومت پول اپ کردم و بعد به یه کلید وصل کردم

        و این if هم وقتی باید اجرا بشه که کلید به زمین بخوره
        ولی جواب نمیده تو AVR همین کار رو میکردم ولی کد هاش فرق میکرد
        چی کار کنم برای گذاشتن یک کلید چی کار میکنید

        راهی داره تا مستقیم با یک پین دست رسی داشته باشم حالا چه برای خوندن اون پین یا مقدار دادن یا ورودی خروجی تعیین کردن

        بعد متغییر int تو Keil چند بیتی هست؟ oo:

        دیدگاه


          #5
          پاسخ : کمک : کار با پورت

          نوشته اصلی توسط vahidsport
          آقا ممنون ....

          فقط نمیتونم از IOPIN استفاده کنم

          تو برنامه مینویستم مثلا
          k=IOPIN0
          if ((k & 0x80000000)==0) IOSET0=0xff


          بعد پین 31 (اخرین پین پورت) رو با مقاومت پول اپ کردم و بعد به یه کلید وصل کردم

          و این if هم وقتی باید اجرا بشه که کلید به زمین بخوره
          ولی جواب نمیده تو AVR همین کار رو میکردم ولی کد هاش فرق میکرد
          چی کار کنم برای گذاشتن یک کلید چی کار میکنید

          راهی داره تا مستقیم با یک پین دست رسی داشته باشم حالا چه برای خوندن اون پین یا مقدار دادن یا ورودی خروجی تعیین کردن

          بعد متغییر int تو Keil چند بیتی هست؟ oo:
          سلام
          #include <lpc21xx.h>

          int main(){
          IODIR0=0XFF;
          IOSET0=0XFF;
          while(1){
          if((IOPIN0&(1<<31))==0){
          if((IOPIN0&0XFF)==0XFF)IOCLR0=0XFF;
          else IOSET0=0XFF;
          while((IOPIN0&(1<<31))==0);
          }

          }
          }
          برنامه ای که گفتی این می شه
          هر وقت کلید فشرده می شود اون خروجی ها NOT می شوند و ...
          این برنامه رو با پروتئوس ببند
          int متغیر 32 بیتی است
          کاری ندارم این وری هستی یا اون وری چپی یا راست
          همیشه ایرانی باش و به ایرانی بودنت افتخار کن
          ایران و هیچ وقت تنها نزار
          اگه خدا رو قبول داری اجرت با خدا

          دیدگاه


            #6
            پاسخ : کمک : کار با پورت

            آقا خیلی ممنون کارم راه افتاد فقط....
            من دارم یه برنامه ای مینویسم که تو ال سی دی گرافیک و چند قطعه دیگر تو استفاده می خوام بکنم در حال حاضر هم این کار رو با ارم NXP2103 دارم انجام میدم بعد ها میتونم این برنامه که رو ارم NXP2103 نوشته شده رو ببرم رو یه ارم دیگه ؟حالا می خواد فیلیپس باشه یا اتمل؟ اصلا این کار شدنی هست؟ برای اینکه بتونم این کار رو بکنم چی کار باید بکنم یا به مشکل بر نخورم

            تو AVR میشد

            دیدگاه


              #7
              پاسخ : کمک : کار با پورت

              نوشته اصلی توسط vahidsport
              آقا خیلی ممنون کارم راه افتاد فقط....
              من دارم یه برنامه ای مینویسم که تو ال سی دی گرافیک و چند قطعه دیگر تو استفاده می خوام بکنم در حال حاضر هم این کار رو با ارم NXP2103 دارم انجام میدم بعد ها میتونم این برنامه که رو ارم NXP2103 نوشته شده رو ببرم رو یه ارم دیگه ؟حالا می خواد فیلیپس باشه یا اتمل؟ اصلا این کار شدنی هست؟ برای اینکه بتونم این کار رو بکنم چی کار باید بکنم یا به مشکل بر نخورم

              تو AVR میشد
              سلام
              سلام در nxp با تغییرات کوچک مثلا می توان در سری lpc23xx استفاده کرد
              و نکته دیگه این است که از چه واحد های این میکرو استفاده می کنید
              مثلا اگر usart باشه یکی است اما در اینتراپت یک تغییر کوچک باید بدی و ....

              در مورد اتمل تغییرات بیشتر خواهد بود و کلا نام ریجستر ها در اتمل با فیلیپس فرق دارد
              در مودر nxp که در بالا هم اشاره کردم ،به طور ساده بگم مثل این میمونه که یک برنامه که برای مگا 16 نوشتی رو حالا بیای روی مثلا مگا 1280 پیاده کنی
              و در کل می توان با تغییراتی در تمامی سری های آرم استفاده کرد فقط نکته این است که به زبان c نوشته شود

              موفق باشی

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

              دیدگاه


                #8
                پاسخ : کمک : کار با پورت

                آقا ببخشید من زیاد سوال می پرسم و دستتون هم درد نکنه بابت جواب ها خیلی خیلی ممنون
                آقا من می خام وقفه Overflow تایمر یک رو راه بندازم فقط نمیدونم این تابعی که مربوط به اینترانت ش هست و باید قبل مین نوشته بشه اسمش چیه چه طوری باید مشخص کنم که این تابع مربوط به وقفه اورفلو تایمر 0 هست
                منظورم هم از overflow اینه مقدار مثلا رجیستر MR0R با مقدار تایمر کانتر برابر شده کلا می خوام تابع وقفه MR0R رو بنویسم ولی نمیدونم چه طوری مشخص کنم که این تابع مربوط میشه وقفه MR0R

                نمیدوم منظورم رسوندم یا نه
                ببخشید

                دیدگاه


                  #9
                  پاسخ : کمک : کار با پورت

                  نوشته اصلی توسط vahidsport
                  آقا ببخشید من زیاد سوال می پرسم و دستتون هم درد نکنه بابت جواب ها خیلی خیلی ممنون
                  آقا من می خام وقفه Overflow تایمر یک رو راه بندازم فقط نمیدونم این تابعی که مربوط به اینترانت ش هست و باید قبل مین نوشته بشه اسمش چیه چه طوری باید مشخص کنم که این تابع مربوط به وقفه اورفلو تایمر 0 هست
                  منظورم هم از overflow اینه مقدار مثلا رجیستر MR0R با مقدار تایمر کانتر برابر شده کلا می خوام تابع وقفه MR0R رو بنویسم ولی نمیدونم چه طوری مشخص کنم که این تابع مربوط میشه وقفه MR0R

                  نمیدوم منظورم رسوندم یا نه
                  ببخشید
                  سلام
                  خواهش می کنم خوب برای این کار اول باید بخش اینتراپت user manual رو مطالعه کنی و بعد همین تایمری که گفتی
                  مثلا می خوای یک تابع اینتراپت برای تایمر یک تعریف کنی
                  VICVectAddr5=(unsigned) timer11;
                  در خط بالا ، تابعی که در بالا مین با نام time11 قرار دادی به تابع اینتراپت تایمر یک اختصاص داده می شود (آدرس تابع رو مشخص کنیم) البته خط بالا باید در مین قرار گیرد و...
                  تابع رو به صورت زیر تعریف می کنیم (در بالا مین)
                  البته اگر تابع رو در اول برنامه معرفی کنیم دیگر بالا و پایین بودنش مهم نیست
                  void time11(void){__irq

                  .
                  .
                  .
                  .
                  .
                  }

                  موفق باشید


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

                  دیدگاه


                    #10
                    پاسخ : کمک : کار با پورت

                    سلام

                    آقا شما user manual در کجا رو میگی Help کیل یا دیتا شیت؟ کلمه interrupt رو تو Help کیل سرچ کردن ولی چیزی پیدا نکردم

                    Help کیل اصلا از ش سردر نمیام تا حالا هیچیز مفید از تو ش پیدا نکردم بر عکس Help کدویژن خیلی راحت و همه چی سر جای خودش بود

                    دیدگاه


                      #11
                      پاسخ : کمک : کار با پورت

                      آقا تو این اینتراپت گیر کردم خیلی شلوغ پلوغه دیتا شیت رو خوندم یه چیز هایی دستم اومد ولی کمه

                      کمــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــک

                      دیدگاه


                        #12
                        پاسخ : کمک : کار با پورت

                        نوشته اصلی توسط vahidsport
                        آقا تو این اینتراپت گیر کردم خیلی شلوغ پلوغه دیتا شیت رو خوندم یه چیز هایی دستم اومد ولی کمه

                        کمــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــک
                        سلام user manual خود سری lpc23xx رو می گم نه help که مال keil است help اون خوب است اما پراکنده است
                        باز سوالی داشتی بپرس
                        ببخشید دیر جواب دادم ،درگیر یک سری کار ها هستم :nice:
                        موفق باشی
                        کاری ندارم این وری هستی یا اون وری چپی یا راست
                        همیشه ایرانی باش و به ایرانی بودنت افتخار کن
                        ایران و هیچ وقت تنها نزار
                        اگه خدا رو قبول داری اجرت با خدا

                        دیدگاه


                          #13
                          پاسخ : کمک : کار با پورت

                          آقا یه سوال: البته به تاپیک هیـــــــــــــــــــــــــــــــــــــــچ ربطی نداره

                          من در اینده طی یک پروژه 50 ساله :nice: قرار یکی از این برد های LPC1768 Cortex-M3 Header Board که تو فروشگاه سایت هست بخرم و تا حالا هم از فروشگاه هیچی نخریدم قیمتش رو زده 37 تومن هزینه ارسال رایگان یا جدا میگیرن؟ اگه رایگان نیست خودم میتونم برم از فروشگاه بگیرم؟

                          آقا من پول ندارم یدونه پروگرامر بخرم پس برای همین می خوام از 1768 استفاده کنم چون بوت لودر یو اس بی داره سوالم اینه آیا با این بوت لدر یو اس بی برای پروگرام کردن به مشکل میخورم یا نه؟اگه اره چه مشکلاتی هست؟ پروگرامر چی بگیرم و قیمتش چند هست( ارزون و کارامد باشه مثل STK200/300 تو AVR )

                          بعد این LPC1768 که 32 کیلو رم داره میتونم رم خارجی وصل کنم مثل 8051 ؟ oo:

                          دیدگاه


                            #14
                            پاسخ : کمک : کار با پورت

                            نوشته اصلی توسط vahidsport
                            آقا یه سوال: البته به تاپیک هیـــــــــــــــــــــــــــــــــــــــچ ربطی نداره

                            من در اینده طی یک پروژه 50 ساله :nice: قرار یکی از این برد های LPC1768 Cortex-M3 Header Board که تو فروشگاه سایت هست بخرم و تا حالا هم از فروشگاه هیچی نخریدم قیمتش رو زده 37 تومن هزینه ارسال رایگان یا جدا میگیرن؟ اگه رایگان نیست خودم میتونم برم از فروشگاه بگیرم؟

                            آقا من پول ندارم یدونه پروگرامر بخرم پس برای همین می خوام از 1768 استفاده کنم چون بوت لودر یو اس بی داره سوالم اینه آیا با این بوت لدر یو اس بی برای پروگرام کردن به مشکل میخورم یا نه؟اگه اره چه مشکلاتی هست؟ پروگرامر چی بگیرم و قیمتش چند هست( ارزون و کارامد باشه مثل STK200/300 تو AVR )

                            بعد این LPC1768 که 32 کیلو رم داره میتونم رم خارجی وصل کنم مثل 8051 ؟ oo:
                            همش 50 سال ؟
                            خیلی شتاب نداشته باش اخه بزودی یارانش رو برمیدارن و دیگه باشد تمدید کنی مثلا 100 ساله 1000 ساله!

                            پروگرامر وینگر استفاده کن فروشگاه هم داره!
                            در مورد بوت لودر هم بچها باهاش یه کچولو مشکل دارن مثلا میگن برنامه رو میریزم و جواب نمیده که یه زره که حرفه ای میشن دیگه مشکلشون حل میشه!
                            و در اخر : اگه پروگرامر بخری زمانی که برا هر پروژه میزاری نصف میشه اخه این بوت لودر ها برا اذیت کردن ملت ساختنشون!
                            انجام پروژه هاي برنامه نويسي اندرويد
                            [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                            http://cafebazaar.ir/app/?id=com.atxdroid

                            دیدگاه


                              #15
                              پاسخ : کمک : کار با پورت

                              نوشته اصلی توسط vahidsport
                              آقا یه سوال: البته به تاپیک هیـــــــــــــــــــــــــــــــــــــــچ ربطی نداره

                              من در اینده طی یک پروژه 50 ساله :nice: قرار یکی از این برد های LPC1768 Cortex-M3 Header Board که تو فروشگاه سایت هست بخرم و تا حالا هم از فروشگاه هیچی نخریدم قیمتش رو زده 37 تومن هزینه ارسال رایگان یا جدا میگیرن؟ اگه رایگان نیست خودم میتونم برم از فروشگاه بگیرم؟

                              آقا من پول ندارم یدونه پروگرامر بخرم پس برای همین می خوام از 1768 استفاده کنم چون بوت لودر یو اس بی داره سوالم اینه آیا با این بوت لدر یو اس بی برای پروگرام کردن به مشکل میخورم یا نه؟اگه اره چه مشکلاتی هست؟ پروگرامر چی بگیرم و قیمتش چند هست( ارزون و کارامد باشه مثل STK200/300 تو AVR )

                              بعد این LPC1768 که 32 کیلو رم داره میتونم رم خارجی وصل کنم مثل 8051 ؟ oo:
                              سلام
                              البته من پیشنهاد می کنم با همون سری lpc23xx جلو بری و بعد بری 1768 رو یاد بگیری
                              با بوت لودر هم بگم که اگه با کیل کار می کنی کلا بدردت نمی خوره و سره کاری هست اما اگر از IAR می کنی (که می دونم استفاده نمی کنی :mrgreen مشکل جدی نخواهی داشت
                              برای استفاده از بوت لودر باید برای هر پروژه یک سری تنظیمات رو انجام بدی که .....
                              من نظرم این است با LPC2368 شروع کنی و پروگرامر هم اگر PC داری J-TAG بگیر که رابطش می خوره به پورت پارالل و اما اگه لب تاپ داری برو J-LINK رو بگیر
                              جفتشو خود فروشگاه انجمن داره
                              اما در مورد خرید اگه تهرانی برو خودت جمهوری بگیر ، من خودم میرم جمهوری می گیرم این طوری سریع تر دستم میاد

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

                              دیدگاه

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