اطلاعیه

Collapse
No announcement yet.

استفاده از interrupte adc در bascom

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

    استفاده از interrupte adc در bascom

    سلام......
    من 4 تا سنسور دارم که روی 4 تا لاین adc یه دونه atmega64 قرار دارند ..سنسور هام کاملا" صنعتی هستند و هیچ نویزی نمی گیرند..ولی مقدار هایی که میکرو به من می دند خیلی بالا پایین میشند..تغذیه میکرو کاملا" ایزوله هست از رگولاتور 7805 استفاده کردم.aref هم یه فیلتر پایین گذر براش گذاشتم .شک ندارم ایراد از خود میکرو هست ..به این نتیجه رسیدم که باید از idle استفاده کنم ... ولی مشکل اینجاست که من می خوام میکرو فقط وقتی از sleep idle خارج بشه که interrupt adc مربوط به پورت adc خودش فعال شده باشه.....
    یا اصلا" بی خیال این موضوع ...من باید چیکار کنم :sad: :sad: :sad: :sad:

    #2
    پاسخ : استفاده از interrupte adc در bascom

    سلام............
    بازم منم :biggrin:
    من تقریبا" همه جا رو گشتم ولی چیزی در این مورد پیدا نکردم که ...اگه میکرو بیشتر از یک لاین adc ازش فعال باشه ..میتونیم لاین های مختلف رو جدا گانه start و stop کنیم ....البته توی بیسکام
    لطفا" جواب بدینن

    دیدگاه


      #3
      پاسخ : استفاده از interrupte adc در bascom

      سلام .از این آرایش استفاده کردی؟

      دیدگاه


        #4
        پاسخ : استفاده از interrupte adc در bascom

        سلام...
        از راهنمایتوون ممنونم
        نه از این روش استفاده نکردم .... oo:
        با این روش باید refrenc رو روی avcc بزارم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
        پس با aref چیکار کنم ؟؟؟؟؟؟؟؟؟؟
        می شه بیشتر توضیح بدید
        بهتر نیست aref رو با یه دوونه خازن 100nf بزاریم سر زمین ؟؟؟؟
        در مورد start و stop لاین های adc به صورت مجزا می تونید کمکم کنید؟
        در مورد IDLE می توونید .کمک کنید هیچ کجا به صورت کامل در موردش توضیح ندادند
        نمی دونید دستور برای مد adc noise reducation در بیسکام چی هست ؟؟؟؟
        hellp بیسکام رو خوندم فقط در مورد IDLE نوشته و power-save
        باز هم از لطف شما ممنونم


        دیدگاه


          #5
          پاسخ : استفاده از interrupte adc در bascom

          روناک عزیز

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

          در هر حال ساختار ADC داخل AVR مستقل از کانالیه که انتخاب می کنید. شما یک کانال انتخاب می کنید و ADC را استارت می کنید. سپس به Idle می روید تا اینتراپت ADC میکرو را بیدار کند. و کانال بعد ...

          پس این فرایند به کانال ADC ربطی ندارد.
          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

          دیدگاه


            #6
            پاسخ : استفاده از interrupte adc در bascom

            سلام....
            خیلی خوشحالم که شما به دادم رسیدید :wow:
            اول اینکه سنسوری که استفاده می کنم یه دونه سنسور ویکا هست..(خدایی حرف نداره)
            دوم اینکه من یه دونه atmega128 استفاده کردم .که تمام پایه هاش استفاده شده..
            2تاuart یکی برای ارتباط با یه اینورتر ویکی برای ارتباط با کامپیوتر که interrupt urxcبرا هر دو تاشوون فعاله(البته نه دائم در شرایتی که تو برنامه تعریف کردم)
            پرت spi هم استفاده کردم برای ارتباط با یه atmega16 برای نمایش اطلاعات روی 1 دونه lcd گرافیکی و چندتا سوییچ
            interrupt یه تایمر هم تو برنامم فعال می شه
            از چهارتا کانال adc هم استفاده کردم..2تا برای lm45 smd و2تا برای سنسور 24ولت ویکا
            برای سنسور 24 ویکا هم یه مقاومت گذاشتم که با تغییر امپر مدار اختلاف پتانسیل دوسرش تغییر می کنه که اونو میدم به میکرو البته با هاش یه خازن مولتی لایر 100nf هم موازی کردم ..(اگه 24 ولتم اتصال کوتاه کنه میکروم می پره)
            بقیه پرت ها هم همه برای سویچ کنتاکتور و فیدبکشون استفاده کردم ..با استفاده از اپتو کوپلر و ترانزیستور bdx54
            در کل خیلی دارم ازش کار می کشم..
            وقتی فقط adc تو مداره نوسان مقدارش زیاد نیست
            ولی وقتی بقیه قسمتا میان تو مدار نوسان مقدارش میره بالا
            ولتاژی که برای میکرو میاد 13 ولته که با یه دونه 7805 5 ولتش کردم ..برای برق 24 ولت ترانزیستور ها و مدار ویکا(سنسور 24 ) جدا گانه یه 24 ولت فیلتر کردم
            همه جاش مثل ادم داره کار می کنه به غیر از قسمت adc مدار سنسور ویکا
            یه سوال...
            وقتی من از 4تا کانال adc یه میکرو استفاده میکنم ..adc هم زمان از هر چهار تا لاین نمونه بر می داره
            یعنی اینکه وقتی من از interrupt adc استفاده می کنم با فعال شدن interrupt adc میکرو از هر 4تا کانال نمونه بر داشته؟؟؟؟؟
            یا اصلا" یه طور دیگه
            ما می دوونیم interrupt adc وقتی اتفاق می افته که adc نمونه برداریش رو انجام بده حالا این نمونه برداری از همه ی کانال هاست
            یه سوال دیگه ..
            ما می توونیم interrupt adc رو فقط برای یکی از کانال هاش قرار بدیم
            این سواال ها رو پرسیدم برای اینکه وقتی من از IDLE استفاده می کنم .. حد اقل باید بدوونم interrupt adc چطور کار میکنه تا به واسطه ی اوون از حالت IDLE خارج بشم(می دوونم به واسطه ی interrupt های دیگه هم از این حالت میکرو خارج می شه :biggrin :biggrin:
            به نظرم میرسه چون میکرو خیلی تو این پروژه فعاله این مشکل براش پیش اوومده برا همین تو فکره sleep هستم
            من چقدر سوالل برا پر سیدن دارم oo:
            نمیدوونید دستوور adc noise reducation تویه bascom چیه خیلی گشتم هیچی پیدا نکردم
            به نظر شما بهترین روش برای میانگین گرفتن تا سقف چند عدده
            یه حلقه بنویسم مقدار ها رو بریزم توی یه ارایه بعد هم جمع و تقسیم کنم؟؟؟؟؟؟؟؟؟؟؟؟؟ :question: :question:
            فکر کنم دارم دیووونه می شم
            یکی نیست به من بگه دختر برو اشپزیت رو بکن :biggrin:
            باز هم ممنوون
            پیرووز باشید

            دیدگاه


              #7
              پاسخ : استفاده از interrupte adc در bascom

              سلام........
              می بخشید فکر کنم خیلی سوال پرسیدم.. :cry:
              اگه در مورد نمونه برداری adc وقتی چند تا کانال adc داریم
              وinterupt adc وقتی چند کانال adc هم زمان کار می کنند
              و تفاوت بین IDLEوadc noise education در bascom یه چیزایی بهم بگید خودم یه فکرایی تو کلم هست
              hellp بیسکام رو خوندم هیچی توش نبود (به شرافتم )
              datasheet مربوط به atmega 128 رو هم توش یه سرچی زدم توضیح کاملی نبوود
              شما فقط بگید باید کجا دنبال این اطلاعات باشم خودم میرم دنبالش :cry2:
              خدائی اون قدر که فکر می کنید دخترا خنگند من نیستم :sad:

              دیدگاه


                #8
                پاسخ : استفاده از interrupte adc در bascom

                یه سر به این لینک ها بزن:




                http://www.eca.ir/forum2/index.php?topic=23244.msg108538#msg108538
                http://www.eca.ir/forum2/index.php?topic=24120.msg114206#msg114206

                دیدگاه


                  #9
                  پاسخ : استفاده از interrupte adc در bascom

                  :applause:
                  برای یک دختر پروژه ی بزرگیه
                  آفرین

                  نه . ADCآ‌ در هر لحظه فقط میتونه از یک کانال نمونه برداره. اینتراپت ADC هم ربطی به کانال انتخاب شده نداره. شما کانال رو انتخاب می کنی و ADC رو استارت می کنی. ADC شروع به تیدیل می کنه و وقتی تموم شد اینتراپت میده و شمام باید عدد رو بخونید. شما چون می دونید کدوم کانال رو استارت کردید می دونید این عدد که می خونید مال همونه.

                  پس ما نمی تونیم اینتراپت رو برای یک کانال تعیین کنیم. فقط می نونیم مثلا وقتی داریم کانال n رو می خونیم اینتراپت ADCآ‌ رو فعال یا وقتی کانال m رو می خونیم اینتراپت ADCآ‌ رو غیر فعال کنیم.
                  در نهایت انتخاب کانال مستقل از عملکرد ADCآ‌ است. اگه شما با مالتی پلکسر ها آشنایی داشته باشید خواهید دید که واحد انتخاب کانال یک مالتی پلکسر است که در هر لحظه فقط یکی از ورودی ها رو به ADCآ‌ وصل میکنه.
                  جالب اینجاست که مالتی پلکسر ها کمی تاخیر دارند که معمولا سبب خطا میشه. یعنی وقتی از کانال 4 به کانل 5 سوئیچ می کنید باید کمی صبر کنید و بعد ADC را استارت کنید چون هنوز ولتاژ کانال 4 روی ADC مونده. این نکته ایه که خیلی کم رعایت میشه و ما به اشتباه فکر می کنیم نویزه که اعداد بازی می کنه.

                  متوسط گیری این مزیت اضافه رو داره که به مالتی پلکسر اجازه میده تا بقول فرنگی ها Settle بشه. مثلا 100 نمونه برای هر کانال میانگین خوبیه. البته شما می تونید با کم کردن سرعت ADC به کمترین مقدارش نویز رو باز هم کمتر کنید.

                  متاسفانه من با C برنامه می نویسم و با بیسیک آشنایی ندارم.

                  در مورد ویکاها هم باید بگم سنسورهای خوبی هستند اما خروجی 4..20 میلی آمپر برای کارهای صنعتی بدرد می خوره و اگه کار شما آزمایشگاهی باشه سنسور مناسبی انتخاب نکردید.
                  به هر حال 4..20 میلی آمپر وارد یک مقاومت 250 اهم میشه و به ولتاژ 1 تا 5 ولت تبدیل میشه. مدار زیر برای خوندن اینها و همچنین محافظت از کاناله:



                  با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                  دیدگاه


                    #10
                    پاسخ : استفاده از interrupte adc در bascom

                    سلام.......
                    اقا احمد دستت درد نکنه حداقل با این حرفت به خودم امید وار شدم .
                    اقا اردوان دست شما هم درد نکنه (این ها رو چند رووز پیش خوندم کمکی نکرد) می دوونی چرا؟؟؟؟؟؟؟؟؟؟
                    چون مشکل از این bascom بدرد نخوره ..چون وقتی میزنی start adc همه ی کانال ها با هم start می شند
                    خوب احمد جان شما به من بگید ..وقتی من تو bascom نمی تونم بگم کدام یکی از کانال ها فعال بشه ..پس چطور از interrupt adc استفاده کنم
                    شما وقتی از کمپایلر c استفاده می کنید می توونید بگید کدام یکی از کانال ها فعال بشه .. برای همین وقتی interrupt adc اتفاق می افته می فهمید مال همینیه که فعال شده ..
                    ولی توی بیسکام بدرد نخور وقتی start adc می زنیم همه ی کانال ها فعال می شند .. اون موقع من از کجا بفهمم این interrupt مال کدووم یکیه
                    ولی هر چقدر فکر می کنم با عقلم ساز گار نیست که یه کمپایلر اینقدر احمق باشه ..باید یه راهی داشته باشه
                    یا شاید وقتی start adc رو توی bascom میزنیم adc فعال می شه ولی نمونه ای بر نمی داره تا اینکه ما getadc(chanell)n رو برابر یه مقدار قرار بدیم ..
                    حالا می شه گفت interrupt adc فعال می شه .بعد از getadc یه کانال مشخص.....؟؟؟؟؟؟؟؟؟؟ در کل نمی دونم .
                    باید برم تو سایت bascom ببینم اونجا خبری نیست
                    توی eca هیچکی با bascom کار نمی کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
                    روناک نیستم اگه بعد از تمام شدن این پروژه cرو فوول نشم...
                    نمی دوونم اونی که به من گفت basic برا شما خوبه چه فکری کرد این حرف رو زد :cry2: :cry2: :cry2: :cry2: :cry2:
                    دستتون درد نکنه اگه شما نبودید . که من بیچاره بوودم...
                    پیرووز باشید

                    دیدگاه


                      #11
                      پاسخ : استفاده از interrupte adc در bascom

                      روناک جان
                      آخه زبان با زبان که فرقی نداره!!!
                      همین الان می تونید C رو شروع کنید.
                      فکر می کنید Cآ‌ چند تا دستور داره؟
                      کلا 10 تا هم نمیشه!!!
                      راستش من حتی دستورات ساده ی Cآ‌ مثل حلقه ی for را حفظ نیستم و هر وقت می خوام بنویسم از برنامه های قبلیم استفاده می کنم.
                      البته این مشکل منه که هیچ چیز در خاطرم نمی مونه!
                      شما هم ظرف یک ساعت می تونید برنامه ی خودتونو با Cآ‌ بنویسید. بشرطی که یه برنامه ی نمونه یا لیست این 10 دستور کنارتون باشه.
                      تازه کدویژن همه چی رو خودش می نویسه و اصلا برنامه نویسی رو خنده دار می کنه.

                      نکته ی مهمتر:
                      به هر حال شما نباید در بیسکام هم مشکلی داشته باشید چون نیاز نیست بیسکام دستوری رو داشته باشه.

                      مثلا فکر می کنید من توی Cآ‌ چطور پورت سریال رو می خونم؟
                      جالبه بدونید من اصلا کاری با دستور getchar که خیلی ها برای خوندن از پورت سریال ازش استفاده می کنن ندارم و مستقیما بیت هفتم رجیستر UCSRA را چک می کنم و اگر یک شد UDR را می خونم!

                      بله من بیشتر دستورات Cآ‌ رو بلد نیستم. در عوض ساختار داخلی AVRآ‌ رو میشناسم و می دونم کدوم رجیستر مال چه کاریه.

                      به احتمال زیاد در بیسکام هم شما به رجیسترهای AVRآ‌ دسترسی دارید. اگه نداشته باشید بهتره همین امروز این کمپایلر مسخره را کنار بگذارید.

                      حالا میریم تو دیتاشیت ATmege64 و در بخش ADC صفحه ی244 یه رجیستر بنام ADMUXآ‌ داره که برای انتخاب کانال مالتی پکسر و رفرنسه.

                      با تغییر این رجیستر شما می تونید هر کانالی که می خواهید و هر رفرنسی که دوست دارید انتخاب کنید.



                      بیت 7 و 6 برای انتخاب رفرنس است. مثلا اگر می خواهید از رفرنس خارجی استفاده کنید باید هر دو بیت صفر شود.
                      البته برای کار شما طبق تجربه ی من بهتر است از رفرنس داخلی استفاده کنید چون نه LM35 و نه سنسور فشار هیچکدام سنسورهای تناسبی(مثل RTD) نیستند و در ایندو باید رفرنس دقیق باشد. فقط مقاومت 250 اهم برای تبدیل جریان سنسور ویکا به ولتاژ می شود 125 اهم.
                      حتی اگر می خواهید رفرنس خارجی استفاده کنید نباید پایه ی رفرنس را به VCCآ‌ وصل کنید چون VCC دقت ندارد. در این حالت باید از آی سی های رفرنس ولتاژ مثل LM336 یا انواع بهتر استفاده کنید.

                      بیت 5 در رجیستر ADMUXآ‌ برای تعیین فرمت خروجی داده در نتیجه ی تبدیل است که طبق تجربه ی من بهتر است این بیت صفر باشد.

                      بیت 4 تا 0 برای انتخاب کانال و تعیین گین است.مثلا برای انتخاب کانال صفر در گین یک، این بیتها باید 00000 باشند. برای انتخاب کانال 1 با گین یک این بیتها باید 00001 باشند.
                      در صفحه ی 245 و 246 دیتاشیت جدول ساده ای قرار دارد که کار شما را در انتخاب کانال و بهره آسان میکند.

                      پس در بیسکام هم می توانید قبل از استارت هر کانالی را که دوست دارید انتخاب کنید.

                      مثلا اگر بنویسید: ADMUXآ‌ =11000000b (عدد بصورت باینری نوشته شده)
                      یعنی رفرنس داخلی و کانال صفر انتخاب شود.


                      رجیستر بعدی ADCSRA است که برای کنترل و مونیتور کردن ADCآ‌ می باشد. بعد از اینکه کانال را با مقداردهی به ADMUXآ‌ انتخاب کردید باید با مقداردهی به ADCSRA به ADCآ‌ بگویید استارت کند. با همین رجیستر می توانید به ADC بگویید اینتراپت بدهد یا ندهد.



                      تشریح بیتها:

                      بیت 7 را باید 1 کنید تا ADC فعال شود.
                      بیت 6 را اگر یک کنید ADC استارت می شود.
                      بیت 5 را وقتی که می خواهید Auto Trigger فعال شود 1 کنید. که در کار شما به نظر نیاز نیست.
                      بیت 4 وقتی 1 می شود که کار ADCآ‌ تمام شود و عدد تبدیل شده آماده ی خواندن باشد. پس شما وقت استارت آنرا صفر می کنید و اگر نمی خواهید از اینتراپت استفاده کنید این بیت را چک می کنید تا یک شود. اگر از اینتراپت استفاده می کنید که دیگر نیاز به چک کردن این بیت نیست.
                      بیت 3 را اگر یک کنید اینتراپت ADCآ‌ فعال می شود. البته به شرطی که اینتراپت کلی (Global Interrupt) فعال باشد.
                      بیتهای 2 تا 0 برای تعیین سرعت ADCآ‌ بکار می رود. مثلا اگر هر 3 بیت را یک کنید سرعت به کمترین مقدار (کلاک بخش بر 128) کم می شود و برای کار شما که می خواهید نویز کم باشد بسیار مناسب است.
                      مثلا اگر بنویسید: ADCSRA =11001111b (عدد بصورت باینری نوشته شده)
                      یعنی ADCآ‌ با کمترین سرعت استارت شود و اینتراپت آن فعال باشد.

                      پس که اصلا مهم نیست به چه زبانی برنامه می نویسید.
                      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                      دیدگاه


                        #12
                        پاسخ : استفاده از interrupte adc در bascom

                        سلام......
                        شما فوق العاده اید.بهترین معلمی هستید که تا به حال داشتم..
                        اصلا" امکان نداشت .این کار به فکرم برسه ..
                        به خاطر چیزی که یادم دادید .دارم بال در میارم.. :wow: :wow: :wow: :wow: :wow: :wow: :wow:
                        قول می دم اگه bascom توانایی این کار رو نداشت از همین الان .شروع کنم .برنامم رو با c بنویسم
                        بخاطر این پروژه دارم اسکلت می شم (مامانم می گه اگه لاغر تر شی گوشه خونه می ترشی) :sad:
                        عالی بوود
                        دستتون درد نکنه
                        پیروز باشید

                        دیدگاه


                          #13
                          پاسخ : استفاده از interrupte adc در bascom

                          نوشته اصلی توسط روناک
                          سلام.......
                          اقا احمد دستت درد نکنه حداقل با این حرفت به خودم امید وار شدم .
                          اقا اردوان دست شما هم درد نکنه (این ها رو چند رووز پیش خوندم کمکی نکرد) می دوونی چرا؟؟؟؟؟؟؟؟؟؟
                          چون مشکل از این bascom بدرد نخوره ..چون وقتی میزنی start adc همه ی کانال ها با هم start می شند
                          خوب احمد جان شما به من بگید ..وقتی من تو bascom نمی تونم بگم کدام یکی از کانال ها فعال بشه ..پس چطور از interrupt adc استفاده کنم
                          شما وقتی از کمپایلر c استفاده می کنید می توونید بگید کدام یکی از کانال ها فعال بشه .. برای همین وقتی interrupt adc اتفاق می افته می فهمید مال همینیه که فعال شده ..
                          ولی توی بیسکام بدرد نخور وقتی start adc می زنیم همه ی کانال ها فعال می شند .. اون موقع من از کجا بفهمم این interrupt مال کدووم یکیه
                          ولی هر چقدر فکر می کنم با عقلم ساز گار نیست که یه کمپایلر اینقدر احمق باشه ..باید یه راهی داشته باشه
                          یا شاید وقتی start adc رو توی bascom میزنیم adc فعال می شه ولی نمونه ای بر نمی داره تا اینکه ما getadc(chanell)n رو برابر یه مقدار قرار بدیم ..
                          حالا می شه گفت interrupt adc فعال می شه .بعد از getadc یه کانال مشخص.....؟؟؟؟؟؟؟؟؟؟ در کل نمی دونم .
                          باید برم تو سایت bascom ببینم اونجا خبری نیست
                          توی eca هیچکی با bascom کار نمی کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
                          روناک نیستم اگه بعد از تمام شدن این پروژه cرو فوول نشم...
                          نمی دوونم اونی که به من گفت basic برا شما خوبه چه فکری کرد این حرف رو زد :cry2: :cry2: :cry2: :cry2: :cry2:
                          دستتون درد نکنه اگه شما نبودید . که من بیچاره بوودم...
                          پیرووز باشید
                          من با بسکام کار میکنم و با c هم خیلی کم سر وکله زدم و به نظرم هر کدوم خوبی های واسه خودشون خودشون رو دارن شما وقتی میگید start adc در اصل فقط adc رو فعال میکنین و نمونه ور نمیداره و منتظر میمونه که شما بگین کدوم پین یا کانال که مثلا میگین
                          کد:
                          get adc(4)
                          خوب اون هم میره کانال 4رو میخونه :mrgreen:.حالا کجاش سخت بود oo:

                          و هیچ وقت هم دو تا adc با هم خونده نمیشه که بخواد کانال شلم شوربا بشه :biggrin: همون طوری که استاد ahmadmn فرمودند(منم استاد بودم مجبور بودم این همه بار علمی داشته باشم :mrgreen
                          اگر مدار سخت افزار رو درست نبسته باشین طبق شماتیکی که اقای ardavanzzz عزیز گفتن مطمین باشین به کل adc غلط کار میکنه و یه نکته دیگه این که ببینید Adc رو درست config کردین؟

                          به هر حال من با bascom و adc یه کارایی کردم که بعید میدونم الان واسه همچین کار ساده ای گیر کرده باشه

                          حتی من باهاش از میکروفن صدا گرفتم و روی mmc ریختم اونم باکیفیت قابل قبولی که میخواستم
                          علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                          دیدگاه


                            #14
                            پاسخ : استفاده از interrupte adc در bascom

                            سلام...
                            اول اینکه استاد omega وقتی که اقا احمد برام در مورد رجیستر های کنترلی توضیح داد دیگه اهمیتی نداره با چه
                            کمپایلری کار میکنم .
                            دوم اینکه استاد omega من که از اول این تایپیک دارم جیق می کشم که یکی بیاد به هم توضیح بده روند نمونه برداری adc رو
                            سوم اینکه استاد omega این نکته ای که شما گفتید به این معنیه که اگه ما interrupt adc رو فعال کنیم تا وقتی getadc برای یه کانال مشخص رو نذاریم interruptadc اتفاق نمی افته . یعنی میگید که اگه من start adc بزنم interrupt adc هم فعال باشه ولی getadc توی برنامه نباشه .اصلا" interrupt adc اتفاق نمی افته
                            اگه همچین چیزی درسته چرا توی codevision کانال های مختلف adc رو می تونیم به صورت مجزا start و stop کنیم
                            چهارم اینکه استاد omega ما می دونیم که بیت اول از register ADCSRA وقتی 1 بشه ad میکرو فعال میشه , و 5تا بیت اخر register ADMUX برای مشخص کردن شماره ی کانال ورودی مبدل ad و بهره کانال های دیفرانسیلی هستش
                            حالا جناب استاد می شه توضیح بدید start adc و getadc کدووم رجیستر ها رو فعال می کنند ..البته بگید از کجا خوندید ما هم بریم بخونیم .. اگه هم همین طوری به فکرتوون رسید که من هم توی پست قبلیم این احتمال رو دادم ...ولی در کل با راهنمای که اقا احمد گفتند هیچ احتیاجی به این جزئیات نیست
                            پنجم اینکه من هم با استفاده از میکرو تبدیل ولتاژ انالوگ به دیجیتال و بلعکس انجام دادم (با استفاده از موج pwm ..ساختن دامنه سیگنال انالوگ با استفاده از duty sycle pwm( , و این ها قابلیت های میکرو است نه یه برنامه ی خاص
                            مهم اینه که یه کمپایلر با کرفتن کمترین مکان از حافظه بیشترین کارایی رو به دست بدهد
                            و این رو همه ی ی الکترونیکی ها می دوونند .. bascom نسبت به codevision حجم زیاد تری رو از حافظه ی میکرو می گیره(برای یه برنامه ی مشخص ) در اخر اینکه اقای استاد من توی پروژه های دیکه هم با adc کار کردم ولی توی اون ها فقط یه کانال adcداشتم و حجم کاری
                            میکرو هم خیلی پایین بود .محیطم صنعتی و پر نویز نبود ..سنسورم به این صورت نبود
                            پس نگران config هم نباش به جای این ها یه کمی در مورد IDLE , و مد adc noise reduction در bascom توضیح بدید .. تا من هم روشن بشم .من نمی دونم چرا هیچ دستوری برای adc noise reducation توی bascom پیدا نمی کنم
                            در نهایت ببخشید که به قول خودتوون کار به این سادگی رو هنوز نتونستم با bascom تمومش کنم
                            از قدیم هر کاری رو که نمی تونستم درست انجام بدم .می نداختند گردن دختر بودنم ..اینم یکی دیگه روش
                            در کل ما شاگرده هرچی استاده هستیم ..


                            دیدگاه


                              #15
                              پاسخ : استفاده از interrupte adc در bascom

                              چرا مسخره می کنی خوب نمی دونستم :cry: :cry: :cry2: :cry2:

                              دیدگاه

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