اطلاعیه

Collapse
No announcement yet.

چندین عملیات پردازش

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

    چندین عملیات پردازش

    با سلام .

    من میخواستم ببینم , موقعی که میخواهیم چندین عمل پردازش را انجام بدیم با ید از چه راهی استفاده کنیم.
    به طور مثال در میکروهای pic و avr

    مثلا:
    در پایه portb.4 می خواهیم یک سیگنال pwm دائم داشته باشیم.

    در پایه porta.5 می خواهیم یک موج مربعی با فرکانس 500khz داشته باشیم.

    و یک سری عملیات پردازشی دیگر .

    منظورم اینه که یک برنامه نوشتیم مثلا 500 خط , اگر قرار باشه تو یک خط دستور تولید فرکانس را نوشته باشیم .
    برنامه باید 500 خط دیگر را طی کند تا به این دستور برسد.
    پس همین قضیه باعث میشود در لحظه ای خروجی صفر شود.

    در ضمن به نظرتون از وقفه استفاده کنم ؟

    -برای تولید فرکانس به وسیله وقفه در میکرو pic ودر زبان basic باید چه کار کنم.
    -برای تولید pwm هم مثل بالا.

    با تشکر فراوان از تمام عزیزان.
    موفق باشید
    زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

    #2
    چندین عملیات پردازش

    ممنون از اینکه هیچ کس جواب نداد.

    کسی نبود ؟ :? :? :? :? :?
    زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

    دیدگاه


      #3
      چندین عملیات پردازش

      خوب برنامه باید تو حلقه ای که نوشتین یک بار تا آخر بره بعد برگرده و از اول بخونه
      برای avr تولید pwm زیاد کار مشکلی نیست
      با کد ویژن یا میکروبیسیک یا بسکام خیلی راحت میتونی رو پایه هایی که pwm سخت افزاری
      دارن pwm اتون رو تولید کنید. اما گر میخواهید خودتون به طور نرم افزاری موج مربعی تولید کنین روی هر I/O دلخواه ، فکر کنم باید از اینتراپت تایمر استفاده کنید.

      در مورد pic اطلاع دقیقی ندارم.
      آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

      دیدگاه


        #4
        چندین عملیات پردازش

        پیشنهاد میکنم اگه با C یا اسمبلی مشکل دارین با
        نرم افزار MikroBasic-AVR کار کنین.
        خودش برای 3 نوع AVR و از جمله MEGA16 مثال هم داره ( A/D - PWM - USART و .... (
        انصافا برنامه محشریه... توصیه میکنم حداقل یک بار امتحانش کنید.
        بعد هم نیاین بگین املای MIKROBASIC غلطه ها چون واقعا همینطوریه تو سایتش هم برین همینه
        www.mikroe.com
        این هم یه توضیحات از طرف شرکتش:

        v.3.0.0.0 (2006-07-20)
        ----------------------
        - Implemented optimization engine
        - Implemented Records
        - More examples, for more chips
        - IDE upgrade
        - New Libraries:
        - RS485
        - IrDA2
        - Serial Port Expander with MCP23S17
        - Serial GLCD with MCP23S17
        - I2C Library improved
        - Simulator
        - Visual enhancements
        - Ide enhancements
        - Various bug fixes
        - Old libraries revision
        - Faster library loading
        - Updated help

        اگه میخوای ورژن 3 اون رو دانلود کنی 4.8 مگابایته :
        http://www.faridonline.ir/downloads.php?cat_id=1

        آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

        دیدگاه


          #5
          چندین عملیات پردازش

          با سلام.

          farid جان ممنون از توضیحاتی که دادی.

          با mikro basic کارکردم , خیلی قوی است.

          من دستور pwm را بلدم , ولی مشکل اینجا است که موقعی که داره دستورات دیگر اجرا میشود

          دیگر سیگنال نداریم , تا برنامه برگردد به دستور مورد نظر.

          من میخواهم ببینم چی کار کنم که سیگنال قطع نشود.

          موفق باشید.
          زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

          دیدگاه


            #6
            چندین عملیات پردازش

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

            دیدگاه


              #7
              چندین عملیات پردازش

              نوشته اصلی توسط arem
              با سلام.

              farid جان ممنون از توضیحاتی که دادی.

              با mikro basic کارکردم , خیلی قوی است.

              من دستور pwm را بلدم , ولی مشکل اینجا است که موقعی که داره دستورات دیگر اجرا میشود

              دیگر سیگنال نداریم , تا برنامه برگردد به دستور مورد نظر.

              من میخواهم ببینم چی کار کنم که سیگنال قطع نشود.

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

              دیدگاه


                #8
                چندین عملیات پردازش

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

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

                دیدگاه


                  #9
                  چندین عملیات پردازش

                  راستی یادم رفت بگم ..........

                  دیر و زود داره اما سوخت و سوز نداره ............ محال اینجا سئوالی بی پاسخ بمونه .

                  پاینده باشید.
                  گر جان عاشق دم زند آتش بر این عالم زند
                  وین عالم بی اصل را چون ذره ها بر هم زند

                  دیدگاه


                    #10
                    چندین عملیات پردازش

                    با استفاده از ماژول PWM در میکروکنترلرهای AVR وPIC شما قاد خواهید بود که یک موج با فرکانس های دلخواه تولید کنید. و در کنار این کار میکروکنترلر قادر است که دستورات دیگر را نیز پردازش کند.
                    در میکروکنترلر های PIC:
                    آن دسته از میکروهای خانواده mid-range mcu family از میکروهای pic که دارای تایمر 2 هستند به مازول PWM مجهز می باشند. (اکثر آن ها 2 تا ماژول PWM دارند که برای ماژول PWM یک پایه متناظر به عنوان خروجی وجود دارد.)
                    قبل از آنکه برای شما 2 فرمول را مطرح کنم ابتدا دو اصطلاح را برای شما تعریف می کنم:
                    1 - DUTY CYCLE: مدت زمانی است که خروجی مربوط به ماژول PWM 1 می باشد.
                    2 - PERIOD: دوره تناوب موج خروجی می باشد. و فرکانس موج خروجی مورد نظر عکس آن است.
                    برای تعیین دوره تناوب از فرمول زیر استفاده می شود:
                    PERIOD = [(PR2) + 1] . 4 . Tosc
                    در این فرمول PR2 یک رجیستر 8بیتی است و مقدار آن ماکزیمم 255 می تواند باشد. در فرمول فوق مقدار این ثبات را بر حسب دسیمال در نظر بگیرید.
                    همچنین Tosc عکس فرکانس اسیلاتور میکرو است که مثلا برای یک کریستال 4 مگا هرتزی این مقدار 0.25 میکروثانیه است.
                    برای تعیین DUTY CYCLE باید 10 بیت را مقدار دهی کنید. 2 بیت کم ارزش تر در ثبات CCP1CON قرار دارند و بیت های شماره 4 و 5 آن می باشند. 8 بیت با ارزش تر در رجیستر CCPR1L قرار دارند.
                    با استفده از فرمول زیر مقدار DUTY CYCLE را تعیین می کنیم:
                    PWM dc= V . Tosc . TMR2 prescaler
                    بحث در باره فرمول فوق در اینجا نمی گنجد.
                    اکنون با استفاده از دستورات زیر ما 2 موج مربعی روی پایه های RB0 و RC2 میکروکنترلر PIC16F876 با فرکانس های متفاوت به ترتیب 500KHZ و 25KHZ ایجاد می کنیم که دومی از دقت کمتری برخوردار است ولی اولی که از ماژول PWM استفاده میکند دقت بسیار بیشتری دارد:
                    TRISA = 0
                    TRISB = 0
                    INTCON = %11000000
                    PIE1.CCP1IE = 1
                    PR2 = 3
                    CCPR1L = %00000010
                    TRISC.2 = 0
                    T2CON = %00000100
                    CCP1CON = %00001100
                    loop:
                    Toggle PORTB.0
                    WaitUs 20
                    Goto loop
                    End

                    این برنامه رو می توانید در پروتئوس شبیه سازی کنید. اگه فایل هگزشو خواستی برام ایمیل بزار.
                    البته PIC16F876 دو تا ماژول PWM داره که به شما کمک می کنه که 2 موج مربعی با دقت بالا رو پایه های RC1 و RC2 داشته باشید.
                    با استفاده از وقفه نیز می توان موج مربعی ساخت البته وقفه مربوط به تایمرها ولی محاسبات کمی پیچیده ای نیاز دارد و دقت ماژول PWM را ندارد.
                    در AVR ها هم این ماژول موجود است و می توانید به کتاب علی کاهه مراجعه کنید.
                    WWW.SELRO.NET

                    دیدگاه


                      #11
                      چندین عملیات پردازش

                      شرمنده
                      این دو خط کد در برنامه ای که ارسال کردم اضافه هستند:
                      INTCON = %11000000
                      PIE1.CCP1IE = 1

                      دیدگاه


                        #12
                        چندین عملیات پردازش

                        من فایل 4.8M را دانلود کردم.لطفا یکی به من بگه پسوند این فایل چیه.اسم فایل:6
                        و چطوری نصب میشه.
                        \/..........\/..........\/

                        دیدگاه


                          #13
                          چندین عملیات پردازش

                          پسوندش .zip
                          مگه فایلش پسوند نداره؟؟؟ :shock:
                          آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

                          دیدگاه


                            #14
                            چندین عملیات پردازش

                            با سلام به تمام دوستان عزیز:

                            ممنون از اینکه من را راهنمایی کردید.

                            a_sourena عزیز ممنون از اینکه کامل راهنمایی میکنی.

                            -اگر در قسمت loop هزار دستور دیگر بنویسیم , تو این مدت که طول میکشد تا حلقه دوباره اجرا شود , آیا مشکلی در پالس خروجی pwm ایجاد نمی شود ؟

                            با تشکر از همه دوستان عزیز.

                            موفق و پیروز باشید
                            زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                            دیدگاه


                              #15
                              چندین عملیات پردازش

                              سلام.
                              وقتی از ماژول pwm استفاده می کنیم دستورات دیگر هم به شرط انکه روی تایمر2 و دیگر رجیسترهای مربوط به pwm اثر نگذارند نیز بطور هم زمان اجرا می شوند و مشکلی در کار pwm ایجاد نمی شود . بنابراین در داخل حلقه loop نیز می توانید کد های مورد نظرتان را بنویسید.

                              دیدگاه

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