اطلاعیه

Collapse
No announcement yet.

چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

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

    چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

    سلام
    من یه برنامه نوشتم که خیلی طولانی شده ولی میخوام هر موقع که adc تغییر کرد برنامم سریع بره بخونه و بیاد دوباره به برنامه اصلیم و دائم در حال خوندن نباشه.
    شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
    [img width=400 height=100]http:///uploads/140623781981451.png[/img]
    [glow=green,2,100]یاحسین تشنه لب[/glow]

    #2
    پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

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

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

    دیدگاه


      #3
      پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

      خوب الان وقفه فعال هست ولی وقتی برنامه درحال اجراست adc نمیخونه!
      شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
      [img width=400 height=100]http:///uploads/140623781981451.png[/img]
      [glow=green,2,100]یاحسین تشنه لب[/glow]

      دیدگاه


        #4
        پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

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

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

        دیدگاه


          #5
          پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

          نوشته اصلی توسط عمو LED
          سلام
          من یه برنامه نوشتم که خیلی طولانی شده ولی میخوام هر موقع که adc تغییر کرد برنامم سریع بره بخونه و بیاد دوباره به برنامه اصلیم و دائم در حال خوندن نباشه.
          با سلام
          این تغییر ADC رو یکی باید بفهمه و به میکرو فرمان خوندن بده، مثلا یه میکروی دیگه؟

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

          دیدگاه


            #6
            پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

            1-من نگفتم که adc سرعتم کند میکنه . نمیخوام دائم بخونم . میخوام هر موقع تغیر کرد بخونم
            2-ببینید برنامه حدود 700 خطه من نمیتونم بزارم که کلیت اینه که برنامه بصورد زیر است

            کد:
            Config Adc = Single , Prescaler = Auto
            Enable Interrupts
            Enable Adc
            On Adc Adcss
            Start Adc
            main
            
            do
            call sub 1-10
            loop
            
            Adcss:
            من برنامم داره روال عادیشو انجام میده و مشکلی نیست ولی اومدم از adc برای کنترل دور یک موتور استفاده کنم و حالا هر موقع که پیچ ولوم تغییر دادم سرعت موتور تغییر کنه و برگرده به برنامه اصلی

            :read:
            شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
            [img width=400 height=100]http:///uploads/140623781981451.png[/img]
            [glow=green,2,100]یاحسین تشنه لب[/glow]

            دیدگاه


              #7
              پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

              adc مد auto trigger داره که نمیدونم به دردت میخوره یا نه.
              تو یه پروژه میخواستم با مقایسه کننده آنالوگ ازش استفاده کنم ولی متاسفانه مثل اینکه مقایسه کننده آنالوگ در حالت اسلیپ غیرفعال میشه، بیخیالش شدم :mrgreen:
              گذشت خصلت مردان است

              دیدگاه


                #8
                پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                اگه سورس ولتاژی که میخوای بخونیش، خیلی ضعیف نیست، ممکنه این به کارت بیاد:
                سیگنالت رو با یه تاخیر زمانی جزئی(در حدی که میکرو اینتراپت رو تشخیص بده) باید با خودش مقایسه کنی. یعنی با استفاده از خازن تاخیر زمانی ایجاد کنی و با پ امپ هم مقایسه کنی. دوتا پ امپ استفاده کنی، میتونی کاهش و افزایش ولتاژ رو تشخیص بدی. ( یه پ امپ سیگنال به وردی منفی میره و تاخیر دارش به مثبت و پ امپ بعدی سیگنال به ورودی مثبت میره و تاخیر دارش به منفی)

                دیدگاه


                  #9
                  پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                  نوشته اصلی توسط tohid041
                  adc مد auto trigger داره که نمیدونم به دردت میخوره یا نه.
                  تو یه پروژه میخواستم با مقایسه کننده آنالوگ ازش استفاده کنم ولی متاسفانه مثل اینکه مقایسه کننده آنالوگ در حالت اسلیپ غیرفعال میشه، بیخیالش شدم :mrgreen:
                  منظور از این auto trigger این هست که هر تغیییری که بشه عمل میکنه یا نه؟

                  نوشته اصلی توسط شاهرخ مستقیمی
                  اگه سورس ولتاژی که میخوای بخونیش، خیلی ضعیف نیست، ممکنه این به کارت بیاد:
                  سیگنالت رو با یه تاخیر زمانی جزئی(در حدی که میکرو اینتراپت رو تشخیص بده) باید با خودش مقایسه کنی. یعنی با استفاده از خازن تاخیر زمانی ایجاد کنی و با پ امپ هم مقایسه کنی. دوتا پ امپ استفاده کنی، میتونی کاهش و افزایش ولتاژ رو تشخیص بدی. ( یه پ امپ سیگنال به وردی منفی میره و تاخیر دارش به مثبت و پ امپ بعدی سیگنال به ورودی مثبت میره و تاخیر دارش به منفی)
                  نه! بنظرم خیلی شلوغ میشه. بخاطر یک ولوم بیام خازن و پ امپ به مدار اضافه کنم.
                  شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
                  [img width=400 height=100]http:///uploads/140623781981451.png[/img]
                  [glow=green,2,100]یاحسین تشنه لب[/glow]

                  دیدگاه


                    #10
                    پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                    نوشته اصلی توسط شاهرخ مستقیمی
                    اگه سورس ولتاژی که میخوای بخونیش، خیلی ضعیف نیست، ممکنه این به کارت بیاد:
                    سیگنالت رو با یه تاخیر زمانی جزئی(در حدی که میکرو اینتراپت رو تشخیص بده) باید با خودش مقایسه کنی. یعنی با استفاده از خازن تاخیر زمانی ایجاد کنی و با پ امپ هم مقایسه کنی. دوتا پ امپ استفاده کنی، میتونی کاهش و افزایش ولتاژ رو تشخیص بدی. ( یه پ امپ سیگنال به وردی منفی میره و تاخیر دارش به مثبت و پ امپ بعدی سیگنال به ورودی مثبت میره و تاخیر دارش به منفی)
                    نظر من هم همین بود ولی میخواستم با مقایسه کننده داخلی اینکار رو بکنم که دیدم با یک مقایسه کننده نمیشه اینکار رو کرد باید حتما دوتا مقایسه کننده گذاشت ... بنابراین رفتم سراغ جفت پ امپ LM358 که برای این کار مناسبه ...
                    این هم مدار پیشنهادی منه ...

                    با زدن کلید ها ولتاژ تغییر میکنه که باعث میشه ولتاژ خروجی پ امپ ها تغییر کنه ...
                    خروجی پ امپ ها رو باید به دو وقفه خارجی وصل گردد ...
                    سوالی بود در خدمتم ...

                    موفق باشید
                    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                    معرفی نرم افزار Codewizard PWM
                    با من بیشتر آشنا شوید

                    دیدگاه


                      #11
                      پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                      نوشته اصلی توسط عمو LED
                      سلام
                      من یه برنامه نوشتم که خیلی طولانی شده ولی میخوام هر موقع که adc تغییر کرد برنامم سریع بره بخونه و بیاد دوباره به برنامه اصلیم و دائم در حال خوندن نباشه.
                      مسئله اینه که عمو جون( :biggrin هنوز نگفتن مقدار تغییری که مورد نظرشونه چقدر باید باشه تا ADC خوندن رو شروع کنه.
                      یه سئوال! حالا وقتی که ورودی ثابته و هردو پایه پ امپ ها تقریبا مساویند تکلیف خروجی حلقه باز تون چیه؟ نوسانی نمیشه؟ مدارتون که اشمیت نیست.

                      من اگه جای عمو جون بودن بدون دردسر، همون ADC رو میخوندم.
                      کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                      دیدگاه


                        #12
                        پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                        الانشم من همون adc میخونم ولی برنامم یکم( خیلی یکم ) مشغول این میشه

                        من میخوتم که یک ولومی به adc بزنم با کم کردن و زیاد کردنش دور موتور تغییر کنه بازه منم از همون صفر تا 1023 معمول.
                        ولی نکته من اینه که میخوام موقع که پیچ ولوم تغییر دادم سرعت موتور تغییر کنه و برگرده به برنامه اصلی و دائم برنامه adc نخونه.
                        مثل موقعی که ما یک کلید به int میدیم که هرموقع زده شد بره زیر برنامش و بعد برگرده به برنامه اصلی.
                        شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
                        [img width=400 height=100]http:///uploads/140623781981451.png[/img]
                        [glow=green,2,100]یاحسین تشنه لب[/glow]

                        دیدگاه


                          #13
                          پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                          به هر حال با این مدار هایی که دوستان پیشنهاد کردن، با فرض اینکه درست هم کار کنن، باز من خوندن ADC و بکار بردن تکنیکهای نرم افزاری رو ارجح میدونم.

                          چون اصلا نرم افزار برای این طراحی شده که حجم سخت افزار رو کاهش، و قابلیت اطمینان مدار رو افزایش بده.

                          اگه شما با PWMآ‌ دارین موتور رو کنترل میکنین، تولید PWM رو بذارین تو اینتراپت و خوندن ADC رو هم بذارین تو لوپ اصلی(MAIN). مطمئن باشین کاملا درست و دقیق کار میکنه.
                          کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                          دیدگاه


                            #14
                            پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                            نوشته اصلی توسط Saman.Asadi

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

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

                            دیدگاه


                              #15
                              پاسخ : چطور هرموقع adc تغییر کرد برنامم سریع بره بخونه؟

                              نوشته اصلی توسط شاهرخ مستقیمی
                              سلام.
                              ممنون آقا سامان که مطلب ناقص من رو با رسم شکل تکمیل فرمودین.
                              فقط یه نکته ی کوچولو، اگه تو خروجی هر پ امپ یه دیود باشه و کاتد دیودها رو هم به هم وصل کنیم، عملا به یه اینتراپت فقط نیاز خواهیم داشت.
                              سلام
                              بله درسته ...
                              اصلا یادم نبود ... :mrgreen:
                              ممنون که یاد آوری کردید ...
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه

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