اطلاعیه

Collapse
No announcement yet.

تغییر کاربری پین میکرو

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

    تغییر کاربری پین میکرو

    با سلام وخسته نباشید
    یک سوال داشتم میخواستم بدونم
    وقتی یک پورت تو میکرو به عنوان خروجی تعریف میشه در حین اجرا برنامه میشه به عنوان ورودی تعریف کرد و بلعکس
    مثلا یک پین از میکرو که به عنوان تایمر 0 که داره عمل نمونه برداری انجام میده بعد از پایان نمونه برداری مابیایم این پین رو از حالت تایمر خارج کنیم وبه عنوان خروجی h/l تعریف کنیم ودوباره بعد از اجرای صفر یا یک شدن پین به حالت تایمر برگردونیم و نمونه برداری انجام بشه و همین حلقه ادامه داشته باشه
    شرمنده سرتونو درد اوردم
    با تشکر
    سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

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

    سلام
    بله میشه این کار رو کرد
    من خیلی از این روش استفاده میکنم وقتی پایه کم میارم یا تووی یه مدارات خاصی مثل تستر آی سی ها و ...
    مدت هاست نیستم

    دیدگاه


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

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

      سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

      دیدگاه


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

        هر پورت I/O در AVR سه ثبات یا رجیستر اصلی رو به خودش اختصاص میده، مثلا پورت B دارای 3 ثبات: PORTB, PINB, DDRB هست، برای اینکه مشخص کنید این پورت ورودی هست یا خروجی باید مقدار مناسب در رجیستر DDRB بنویسید، حروف DD مخفف Data Direction به معنای جهت داده هست، اگر شما در این رجیستر برای هر پین خاص مقدار 1 منطقی بریزید پایه معادل اون به عنوان خروجی عمل میکنه و اگر مقدار 1 بریزید اون پایه به عنوان ورودی تعریف میشه. حالا هر جای برنامه که باشید میتونید با تغییر مقدار این رجیستر پایه های مختلف هر پورت را به عنوان ورودی یا خروجی تغییر حالت دهید. در صورتی که پورت را به عنوان ورودی بخواهید تعریف کنید باید بیت متناظر در رجیستر DDR را صفر کنید، حالا اگر بخواهید مقاومت بالاکش داخلی را هم فعال کنید مقدار 1 منطقی را اینبار در رجیستر PORTB متناظر میریزید. و برای غیر فعال کردن مقاومت بالاکش مقدار 0 را در رجیستر PORT میریزید، پس به این روش مقاومت بالاکش ورودی را هم در طول برنامه میتوانید فعال یا غیر فعال کنید.
        همچنین در زمانی که پورت به صورت خروجی تعریف شده شما باید مقادیر را در رجیستر PORT بنویسید و برای خواندن به عنوان ورودی باید از رجیستر PIN بخوانید.
        از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
        هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
        اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
        اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
        شاد و موفق باشید

        دیدگاه


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

          با تشکر از شما دوست عزیز پس با برداشتی که من از صحبت های شما داشتم با تغییر مقدار ریجستری ddr می شود وضعیت یک پین را در مکان های مختلف برنامه تغییر داد وبا این حساب اتصالات در تصویر بالا به صورت صحیح قرار گرفته اند وبه جای ان سنسور ها هر ابزار دیگری میتواند قرار بگیرد
          یک سوال کوچک دیگر ایا اپتوکوپلر ابزار مناسبی برای اتصال سنسور به میکرو هست یا جریان را به طور کامل قطع نمی کند و باعث خطا میشود یا میشود به جای اپتوکوپلر از ترانزیستور استفاده نمود
          چون در ترانزیستور یه جریان دیگری نیز در گیر است موجب خطا نمی شود
          با تشکر

          اضافه شده در تاریخ :
          برادر؟
          سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

          دیدگاه


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

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

            دیدگاه

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