اطلاعیه

Collapse
No announcement yet.

%%%% یک مشکل کوچک در دستور Waitus %%%

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

    %%%% یک مشکل کوچک در دستور Waitus %%%

    سلام به اساتید AVR و بیسکام

    من یک سوال دارم :

    آیا دستور Waitus متغیر قبول میکند؟

    من از دستور Waitms استفاده کردم و به خوبی متغیر قبول کرد ولی چون متغیر اعشاری قبول نکرد مجبور شدم متغیرم را در 1000 ضرب کنم و از دستور Waitus استفاده کنم

    ولی نمیدانم چرا این دستور مانند دستور Waitms متغیر قبول نمیکند ، یا نرم افزار من ایراد دارد ؟؟!!

    لطفا راهنمایی بفرمایید :angry: :sad:

    این هم برنامه:


    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Portd = Output

    Dim B As Word

    Do
    B = 1500
    Set Portd.0
    Waitus B
    Reset Portd.0
    Waitus 18000

    Loop
    End
    هنوز وقت برای پیشرفت باقیست!

    #2
    پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

    اره قبول میکنه ولی قابل اطمینان نیست به جای wait b از تایمر استفاده کن و به تایمر متغیر بده
    علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

    دیدگاه


      #3
      پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

      مشکلی نداره . من همین برنامه رو کامپایل کردم . بدون خطا بود .

      دیدگاه


        #4
        پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

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

        دیدگاه


          #5
          پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

          در کل wait ها اصلا دقیق نیستند
          ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

          وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

          r.babazadeh@yahoo.com

          دیدگاه


            #6
            پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

            نوشته اصلی توسط حامــد
            مشکلی نداره . من همین برنامه رو کامپایل کردم . بدون خطا بود .
            ممکنه توضیح بدین که تو پروتئوس 1500 میکرو ثانیه یا همون 1.5 میلی ثانیه رو دیدین یا نه؟

            این مدارشه:



            همینطور که میبینید طول موج 1.5 میلی ثانیه تولید نمیشه ولی اگر مستقیم به WAITUS ، عدد 1500 رو بدم ، درست میشه و تولید میشه!



            هنوز وقت برای پیشرفت باقیست!

            دیدگاه


              #7
              پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

              دوست عزیز از تایمر استفاده کن

              waitms ها دقیق کار نمیکنند
              بشلاشف نشبهث عدد شروع تایمرت رو عوض کنی و با یه متغیرش پرش کنی همین
              علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

              دیدگاه


                #8
                پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                آخه من کار با تایمر یا pwm رو بلد نیستم ممکنه یکم توضیح بدید؟

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

                مثلا این برنامه تولید فرکانس 1 هرتز است :

                $regfile = "M8DEF.DAT"
                $crystal = 16000000

                Config Portd = Output
                Ddrd.0 = 1 : Portd.0 = 0
                Config Timer1 = Timer , Prescale = 1024
                Enable Interrupts
                Enable Timer1
                Enable Ovf1
                On Timer1 Lable

                Timer1 = 57722
                Start Timer1
                Do
                Loop

                End

                Lable:
                Toggle Portd.0
                Timer1 = 57722
                Start Timer1
                Return

                خوب توش فقط پورت معکوس میشه ! من چجوری تایمهای 1 بودن و 0 بودن رو جدا کنم که بعدا بخوام 1 زمان 1 بودن رو تغییر بدم؟؟؟ :cry2:
                هنوز وقت برای پیشرفت باقیست!

                دیدگاه


                  #9
                  پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                  خوب تو دقیق بگو چی میخوای تا بهت بگم
                  ولی تو مثال بالا با تغییر timer1=57722 می تونی زمان رو عوض کنی
                  و واسه 1 کردن بنویس set portd.0و یا واسه خاموش کردن بنویس reset portd.0

                  دقیق بگو چی می خوای :mrgreen:
                  علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                  دیدگاه


                    #10
                    پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                    همونطور که دوستان هم گفتند برای داشتن یه زمان دقیق در عمل بهترین راه استفاده از تایمر هستش.
                    " علت هر شكستي عمل كردن بدون فكر است" الكس مكنزي


                    [move](---> موسیقی ایرانی <---) [/move]

                    دیدگاه


                      #11
                      پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                      خوب OMEGA جان من میگم چی میخوام شما ببینید راهش چیه؟

                      یک فرکانس 50 هرتز که طول موج مثبتش از 1 تا 2 میلی ثانیه با یک ولوم که به ADC وصله تغییر کنه

                      یعنی کل موجم 20 میلی ثانیس 1 تا 2 میلی 1 منطقی و 18 تا 19 صفر منطقی اینم عکس موج:

                      http://www.dehcadeh.com/upload/images/olqzgvclhlznxj2egzqp.jpg


                      یاداوری : با ADC میکرو و یک ولوم از 1 تا 2 میلی ثانیه تغییر میدهیم!

                      اگر ممکنه هم با تایمر توضیح دهید و هم با PWM


                      ممنون
                      هنوز وقت برای پیشرفت باقیست!

                      دیدگاه


                        #12
                        پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                        اگه از کریستال داخلی میکرو استفاده می کنی باید فرکانس کار میکرو را در بسکا یک مگا هرتز بزاری
                        من سر همین فرکانس دو روز سرکار بودم و پروژم جواب نمی داد

                        دیدگاه


                          #13
                          پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                          خوب OMEGA جان من میگم چی میخوام شما ببینید راهش چیه؟

                          یک فرکانس 50 هرتز که طول موج مثبتش از 1 تا 2 میلی ثانیه با یک ولوم که به ADC وصله تغییر کنه

                          یعنی کل موجم 20 میلی ثانیس 1 تا 2 میلی 1 منطقی و 18 تا 19 صفر منطقی اینم عکس موج:

                          http://www.dehcadeh.com/upload/images/olqzgvclhlznxj2egzqp.jpg


                          یاداوری : با ADC میکرو و یک ولوم از 1 تا 2 میلی ثانیه تغییر میدهیم!

                          اگر ممکنه هم با تایمر توضیح دهید و هم با PWM


                          ممنون
                          هنوز وقت برای پیشرفت باقیست!

                          دیدگاه


                            #14
                            پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                            ببین تو باید دو تایمر راه بندازی(ترجیحا 0 و 2 چون هر دو 8 بیتی هستند)بعد یکی رو بذاری واسه ست کردن و یکی واسه دیست کردن


                            بعد تو یه لوپ هی باید adc رو بخونی و نسبت به عدد adc از یه تایمر کم و به همون اندازه به تایمر دیگت اضافه کنی
                            علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                            دیدگاه


                              #15
                              پاسخ : %%%% یک مشکل کوچک در دستور Waitus %%%

                              من شرمنده ام کار با تایمر رو هنوز یاد نگرفتم ممکنه یکم شما توضیح بدین محاسباتش و راه انداختن تایمر چگونس ؟ ( رو راه انداختن یکیش موندم برم دوتاشو راه بندازم ایول :angry: )

                              یکی به داد ما برسه


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

                              دیدگاه

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