اطلاعیه

Collapse
No announcement yet.

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

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

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

    چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد.مثلا پایه های 4 عدد سنسور اپتو کانتر به 4 عدد پین I/0که نه INX و نه TX هستند متصل نموده و شمارش پالس های رو که 16 حالت هست رو خواند . ایا امکانش هست. منظورم اینه که از لحاظ سخت افزاری به صورت مذکور باشه ام از کانتر نرم افزاری یا وقفه داخلی یا یه همچین چیزهایی این کار و انجام داد. اگر امکانش هست با نرم افزار بسکام توضیح بدید. من با دستور BITWAIT اینکار رو کردم اما میخوام 4 بیت اطلاعاتم بصورت مستقل و موازی باشه نه سری. باتشکر.

    #2
    پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

    نمیشه به صورت موازی.
    باید امکانات سخت افزاری اضافه کنی.
    AYRIC

    دیدگاه


      #3
      پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

      این امکانات شامل چجور مدار هایی میتونه باشه ؟ مشکل من اینه که تعداد کانتر های درونه مدارم باید زیاد باشه

      دیدگاه


        #4
        پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

        باید از یک مالتی پلکستر استفاده کنی و داده ها رو یکی یکی بخونی و فقط از یک تایمر/کانتر استفاده می کنی.
        نخواستی هم میتونی از وقفه برای شمارش استفاده کنی :smile:
        ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

        امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

        دیدگاه


          #5
          پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

          چرا . امکانش وجود داره. اما به شرطی که عملیات دیگه ای توی برنامه انجام نشه.
          جواب ایشون را در انجمن AVR دادم. با ذخیره حالت قبلی و مقایسه با حالت فعلی امکان پذیره. البته هیچ کار طولانی نباید توی برنامه انجام بشه چون ممکنه چند پالس از دست بره.

          دیدگاه


            #6
            پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

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

            دیدگاه


              #7
              پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

              فکر می کنم منظورشون این هست که پالس های هر 4 تا را باهم بشمارن.

              که من با توجه به چیزی که در ذهنم هست فکر می کنم با یک سری IF ساده در برنامه میشه این کار را انجام داد.

              دیدگاه


                #8
                پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

                یه مشکلی که دارم اینه که برای دریافت 4 تا داده بصورت موازی حتما باید کل پالس ها در یک لحظه 0000 شوند و بعد حالت بعدی رو وارد کنم مثلا 0101 به 0000 و بعد از 0000 به 1101. یه مثال ساده تری که تو ذهنمه میخوام خوندن داده ها روی پین ها مثل کلید کی برد موسیقی باشه برفرض کلید اول که گرفته بشه بتونیم با نگه داشتن کلید اول و زدن کلید دوم کانت کلید دوم هم بخونیم.یعنی رفتن از کد 1000 به کد 1100 .اینکار با 4 تا وقفه تو شبیه سازی جواب داد. ایا راهی هست با یه وقفه بعلاوه4 بیت از یه پورت دیگه که ترکیب این کدها (2^4=16) میشه رو روی یک وقفه داشته باشیم. تنها مشکلم اینه که خواندن کد ها ی این 4 پالس فقط از حالت 0000 به XXXX نباشه . یعنی بتونیم از هر حالتی بین 0 تا 15 به همدیگه داخلش اعمال کنیم مثلا از حالت 1000 به حالت 1100 (متغیر های A B C D ) مقدار متغیر A=0 B=1 C=0 D=0 .فقط B تغییر کرده.

                دیدگاه


                  #9
                  پاسخ : چطوری میشه پالس های 4 عدد سنسور رو بدون استفاده از کانتر و وقفه حارجی شمارش کرد

                  سلام دوباره

                  همونطور که گفتم بدون وقفه این امکان هست.(البته محدودیت داره.)
                  اگر می خواهید با یک وقفه همش انجام بشه راه حل خاصی که به نظرم میرسه استفاده از یک سری خاص میکرو های AVR هست. در یک سری شماره های این خانواده ، یک وقفه به همه ی پین های یک پورت حساس است و با تغییر هر کدام وقفه ایجاد می شود البته برای همه پین ها یک وقفه ایجاد می شود یعنی شما فقط یک روتین وقفه دارید. چنین امکانی در تمامی شماره های خانواده Xmega هم موجود است.

                  دیدگاه

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