اطلاعیه

Collapse
No announcement yet.

فعال شدن ADC با تغییر مقدار پایه

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

    فعال شدن ADC با تغییر مقدار پایه

    سلام
    میخوام از ADC مگا 8 استفاده کنم و نیاز دارم یک بار ADC مقدارو بخونه و با این مقدار برنامه رو اجرا کنه و دیگه کاری به ADC نداشته باشه تا زمانی که مقداری که روی پایه ADC هست تغییر کنه و به محض عوض شدن مقدار پایه ، ADC خودشو Update کنه و مقدار جدید رو در متغییر مورد نظر قرار بده و با مقدار جدید برنامه رو ادامه بده
    با زبون C و CodeVison کار میکنم
    ممنون اگر راهنمایی کنید
    درایور شبکه و nRF24L01
    کاتالوگ محصولات
    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC

    #2
    پاسخ : فعال شدن ADC با تغییر مقدار پایه

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

    دیدگاه


      #3
      پاسخ : فعال شدن ADC با تغییر مقدار پایه

      نوشته اصلی توسط محسن فاریابی
      فکر کنم بهترین کار فعال کردن اینتراپت باشه!
      نه محسن جان اینتراپت بعد از این که تبدیل تموم شه اینتراپت میده ، شروع تبدیل دسته ماست ، من میخوام اگر مقدار روی ADC0 تغییر کرد خودش اتوماتیک بفهمه ، و شروع به خوندن مقدار و تبدیل اون کنه و به برنامه برگرده و اگر مقداری که روی ADC0 هست تغییر نکرد اصلا سراغ ADC نره

      متوجه منظورم شدی؟!
      فرض کن یه چشمک زن ساده نوشتم ، و یه مقدار برای Delay تعریف کردم که این مقدار با یه پتانسیومتر و از طریق ADC تولید میشه
      میخوام توی حلقه While (1) همش Read_adc (0( رو کال نکنم
      اول یه بار ADC فعال شه مقداری که هستو بخونه و بریزه توی Delay و شروع کنه به چشمک زدن ، حالا اینو ادامه بده تا زمانی که پتانسیومتر تغییر کنه ( اگه تغییر نکرد هیچی ) تا پتانسیومتر تغییر کرد ADC خود بخود یه بار دیگه فعال شه و مقدار جدیدو تولید کنه و بریزه توی Delay و دیگه کاری به ADC نداشته باشه
      منظورم فعال شدن یا کال شدن اتوماتیک تابع Read_adc(0) هست بعد از تغییر
      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
      فروش اسيلوسکوپ GWinstek GOS-630FC

      دیدگاه


        #4
        پاسخ : فعال شدن ADC با تغییر مقدار پایه

        واقعا کسی راه حلی برای این مشکل نداره؟! :cry2:
        درایور شبکه و nRF24L01
        کاتالوگ محصولات
        کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
        شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
        فروش اسيلوسکوپ GWinstek GOS-630FC

        دیدگاه


          #5
          پاسخ : فعال شدن ADC با تغییر مقدار پایه

          با سلام
          آقا من نفهمیدم
          این که با یه شرط ساده قابل انجامه !!! oo:
          یک حلقه مینویسید و شرط خروج از حلقه رو ثابت بودن مقدار adc مثلا توی 2 بار نمونه گیری میزارید
          یک شرط هم میزارید که adc یکبار چک بشه در طول برنامه و اگر با مقدار قبلی برابر نبود برنامه بیوفته توی همون حلقه ی کنترول adc
          من کدویژن بلد نیستم و بسکام کار میکنم وگر نه مینوشتم (البته اینی که گفتم چیز خاصی هم نداره)
          درست فهمیدم یا چیز دیگه ای هست که جا انداختم ؟! :smile:
          مفید بود ؟ بجای اسپم میتونید از دکمه ی تشکر استفاده کنید.
          [img width=405 height=100]http://eros8631.persiangig.com/image/pp.png[/img]

          دیدگاه


            #6
            پاسخ : فعال شدن ADC با تغییر مقدار پایه

            نوشته اصلی توسط jervis
            با سلام
            آقا من نفهمیدم
            این که با یه شرط ساده قابل انجامه !!! oo:
            یک حلقه مینویسید و شرط خروج از حلقه رو ثابت بودن مقدار adc مثلا توی 2 بار نمونه گیری میزارید
            یک شرط هم میزارید که adc یکبار چک بشه در طول برنامه و اگر با مقدار قبلی برابر نبود برنامه بیوفته توی همون حلقه ی کنترول adc
            من کدویژن بلد نیستم و بسکام کار میکنم وگر نه مینوشتم (البته اینی که گفتم چیز خاصی هم نداره)
            درست فهمیدم یا چیز دیگه ای هست که جا انداختم ؟! :smile:
            سلام
            مرسی نه منظورم چیز دیگه ای بود که فهمیدم اصلا نمیشه :biggrin:
            من میخواستم بدون این که ADC رو چک کنم و بدون این که به صورت دستی تایع read_adc رو کال کنم هرگاه تغییری روی پایه ADC0 اتفاق افتاد میکرو متوجه شه و خودش بره توی یه سرویس روتین و مقدار ADC رو بخونه و برگرده به برنامه و اگر کلا هیچ تغییری روی پایه ADC0 نبود اصلا ADC فعال نشه
            اما فهمیدم که میکرو تا ADC فعال نشه که نمیتونه بفهمه تغییری روی پایه بوده یا نه
            کلا قضیه منتفی شد
            درایور شبکه و nRF24L01
            کاتالوگ محصولات
            کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
            شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
            فروش اسيلوسکوپ GWinstek GOS-630FC

            دیدگاه


              #7
              پاسخ : فعال شدن ADC با تغییر مقدار پایه

              نوشته اصلی توسط Bastam (بسطام)
              سلام
              مرسی نه منظورم چیز دیگه ای بود که فهمیدم اصلا نمیشه :biggrin:
              من میخواستم بدون این که ADC رو چک کنم و بدون این که به صورت دستی تایع read_adc رو کال کنم هرگاه تغییری روی پایه ADC0 اتفاق افتاد میکرو متوجه شه و خودش بره توی یه سرویس روتین و مقدار ADC رو بخونه و برگرده به برنامه و اگر کلا هیچ تغییری روی پایه ADC0 نبود اصلا ADC فعال نشه
              اما فهمیدم که میکرو تا ADC فعال نشه که نمیتونه بفهمه تغییری روی پایه بوده یا نه
              کلا قضیه منتفی شد
              یه گوی بلورین باید بزارین جلوی چشم میکرو که آیندرو ببینه !!! :mrgreen: (شوخی کردم !)
              ببینید شدنش میشه ولی باید دید که می ارزه کار شما که روش هزینه بشه یا نه
              میتونید یه میکرو کوچیک مثل سری attiny که adc داره رو در کنار میکرو اصلی بزارید
              سیمی که میاد به پین adc میکرو اصلی رو به اون هم بدید و توی برنامه ی میکرو دوم adc رو دائم چک کنید و هر زمان که تغییر کرد به میکرو اصلی اینتراپت بدید که بفهمه مقدار adc تغییر کرده و چک کنه
              بعد از چک کردن هم که stop میکنه
              در کل اگر میخواید که میکرو اصلی دائم درگیر چک کردن adc نباشه و این موضوع براتون اهمیتش زیاده میشه این کارو کرد
              مفید بود ؟ بجای اسپم میتونید از دکمه ی تشکر استفاده کنید.
              [img width=405 height=100]http://eros8631.persiangig.com/image/pp.png[/img]

              دیدگاه


                #8
                پاسخ : فعال شدن ADC با تغییر مقدار پایه

                آره این فکر خوبیه ولی میگم که قضیه منتفی شد اما این ایده رو ازت نگه میدارم حتما بدردم میخوره :applause:
                درایور شبکه و nRF24L01
                کاتالوگ محصولات
                کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                فروش اسيلوسکوپ GWinstek GOS-630FC

                دیدگاه


                  #9
                  پاسخ : فعال شدن ADC با تغییر مقدار پایه

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

                  دیدگاه


                    #10
                    پاسخ : فعال شدن ADC با تغییر مقدار پایه

                    نوشته اصلی توسط برادر
                    همون اینتراپت ADC کارت رو راه نمیندازه؟ تو اینتراپت چک کن مقدار جدید با مقدار قبلی مساویه یا نه. اگه بود که هیچ. یه سوال دیگه غیرفعال موندن ADC چه حسنی داره؟ برای افزایش اطلاعات خودم پرسیدم.
                    نه ببین اینتراپت ADC اینه که وقتی شما ADC رو کال میکنی ADC شروع به کار میکنه و برنامه ادامه پیدا میکنه و وقتی که تبدیل ADC تموم شد اینتراپت میده و مقدارو پدیت میکنه و کلا عمل تبدیل کردن به دلیل زمانبر بودن توی روند برنامه تداخل ایجاد میکنه ، همین یک لحظه مکث باعث میشه که در برنامه هایی که نیاز به پیوستگی در عملیات داره مشکل درست کنه برای همین میخواستم هروقت ADC مقدار جدیدی روی پایه دید کال شه و در غیر این صورت اصلا ADC کار نکنه و نمیخواستم هر چند دقیقه یک بار چک کنم که آیای مقدار جدیدی آمده مساوی هست یا نه برای همین فکر میکردم راهی هست اما همونطور که دوستان فرمودن ADC میکرو علم غیب نداره و تا زمانی کال نشه نمیدونه مقدار جدیدی آمده یا نه
                    غیر فعال موندن ADC زمانی که شما از یه پایه برای چند کار استفاده میکنید مفید است به شما اجازه میده از یه پایه در زمان مورد نظر برای ADC و در زمانی دیگر برای I/O استفاده کنید
                    درایور شبکه و nRF24L01
                    کاتالوگ محصولات
                    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                    فروش اسيلوسکوپ GWinstek GOS-630FC

                    دیدگاه


                      #11
                      پاسخ : فعال شدن ADC با تغییر مقدار پایه

                      با سلام
                      استاد بسطام بزرگ
                      عزیزم امکان پذیره!!!
                      ورودی ADC رو همزمان به اینتراپت خارجی هم وصل کنین. اینتراپت خارجی میکرو رو روی حالت Any Change قرار بدین. در اینصورت اگر اون پایه کوچکترین تغییری بکنه یه اینتراپت براتون فعال میشه که میتونین اونجا مقدار ADC رو به روز کنین.

                      البته امیدوارم صحیح گفته باشم
                      http://imenbazar.com

                      دیدگاه


                        #12
                        پاسخ : فعال شدن ADC با تغییر مقدار پایه

                        نوشته اصلی توسط امیر افشارنوری
                        با سلام
                        استاد بسطام بزرگ
                        عزیزم امکان پذیره!!!
                        ورودی ADC رو همزمان به اینتراپت خارجی هم وصل کنین. اینتراپت خارجی میکرو رو روی حالت Any Change قرار بدین. در اینصورت اگر اون پایه کوچکترین تغییری بکنه یه اینتراپت براتون فعال میشه که میتونین اونجا مقدار ADC رو به روز کنین.

                        البته امیدوارم صحیح گفته باشم
                        سلام
                        باید چک کنم ولی تا اونجایی که یادمه منظور از Any Change برای اینتراپت هر تغییر روی پایه از 0 به 1 یا از 1 به 0 رو میگن
                        برای این که بتونیم روی هر دولبه بالا رونده و پایین رونده کار کنیم از این مورد استفاده میشه
                        و فکر نکنم مثلا برای تغییر از 4.2 ولت به 3.8 ولت عکس العملی نشون بده و هر 2تا ولتاژ برای میکرو به منزله سطح 1 هستند
                        اما بازم ممنون بررسی میکنم اگر جواب داد اطلاع میدم
                        درایور شبکه و nRF24L01
                        کاتالوگ محصولات
                        کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                        شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                        فروش اسيلوسکوپ GWinstek GOS-630FC

                        دیدگاه


                          #13
                          پاسخ : فعال شدن ADC با تغییر مقدار پایه

                          نوشته اصلی توسط امیر افشارنوری
                          با سلام
                          استاد بسطام بزرگ
                          عزیزم امکان پذیره!!!
                          ورودی ADC رو همزمان به اینتراپت خارجی هم وصل کنین. اینتراپت خارجی میکرو رو روی حالت Any Change قرار بدین. در اینصورت اگر اون پایه کوچکترین تغییری بکنه یه اینتراپت براتون فعال میشه که میتونین اونجا مقدار ADC رو به روز کنین.

                          البته امیدوارم صحیح گفته باشم
                          صحبت آقای بسطام درسته. اینتراپت خارجی میکرو ورودی دیجیتاله و در حالت any change فقط تغییرات دیجیتال رو تشخیص میده. بنابراین این کار غیرممکنه.
                          جمع بندی: تا اینجا تنها راه حل حل عملی و قابل انجام برای این کار، استفاده از یک میکرو در کنار میکروی اصلیه.

                          دوستان راه دیگه ای به نظرشون نمیرسه؟

                          دیدگاه


                            #14
                            پاسخ : فعال شدن ADC با تغییر مقدار پایه

                            نوشته اصلی توسط برادر
                            دوستان راه دیگه ای به نظرشون نمیرسه؟
                            البته من یه چیزی الان به ذهنم رسید اما نمیدونم چقد میتونه عملی باشه
                            اگر ما بیایم از یک پ-امپ استفاده کنیم و یه پایه رو مستقیم بدیم به ولتاژی که قراره تغییر کنه و پایه دیگه رو هم با خازن یا سلف بدیم به همون ولتاژ
                            البته مدار خازن و سلفشو مطمعا نیستم که باید چه جوری باشه ولی باید بتونه مقداری تاخیر ایجاد کنه و بعد از مدتی به اون سطح ولتاژ اصلی برسه
                            و اینطوری کار میکنه که وقتی ولتاژ ثابته روی هر 2تا پایه پ-امپ اختلاف ولتاژی نداریم و خروجی پ-امپ 0 ، بعد از تغییر ولتاژ ، ولتاژ یه پایه بلافاصله تغییر میکنه ولی پایه بعدی هنوز همون مقدار قبلو داره و این باعث میشه ما توی خروجی مثلا 1 داشته باشیم که به میکرو اینتراپت میده و ADC چک میشه ، و بعد از مدتی اون یکی پایه به ولتاژ جدید میرسه و باز خروجی پ-امپ 0 میشه و 0 میمونه تا دوباره تغییر دیگه ای روی پایه هاش ببینه
                            البته فعلا در حد همین ایده هست و باید شبیه سازی و تست بشه
                            تئوریش که جواب میده اما در عمل نمیدونم :read:
                            درایور شبکه و nRF24L01
                            کاتالوگ محصولات
                            کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                            شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                            فروش اسيلوسکوپ GWinstek GOS-630FC

                            دیدگاه


                              #15
                              پاسخ : فعال شدن ADC با تغییر مقدار پایه

                              آقا بسطام عالی بود. ایده خیلی جالب و خوبیه اما باید روش کار بشه. برای ایجاد تاخیر میشه از یک RC استفاده کرد. با توجه به سرعت بالای پ امپ و میکرو کافی به نظر میرسه. فقط دو تا نکته: 1- مقایسه کننده ها هر تغییری رو سنس نمی کنن. بستگی داره شما چه دقتی رو ازش انتظار داشته باشی. 2- ایجاد تاخیر یعنی سپری شدن زمان و این یعنی کاهش سرعت. اگه تغییرات شما زیاد باشه این کار مناسب نیست ولی اگه ممکنه یه روزی یه تغییری ایجا بشه رو این روش میشه حساب کرد.

                              دیدگاه

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