اطلاعیه

Collapse
No announcement yet.

ارتباط دو میکرو از طریق usart

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

    ارتباط دو میکرو از طریق usart

    برنامه ارتباط دو میکرو از طریق usart به همراه سورس وهگز و فایل پروتئوس
    http://www.4shared.com/file/194464307/2f0f8070/usart_397.html

    #2
    پاسخ : ارتباط دو میکرو از طریق usart

    به نظر م اگه به این سایت هم سری بزنی مشکلت ودتر حل میشه
    http://downloadelectron.epage.ir/

    دیدگاه


      #3
      پاسخ : ارتباط دو میکرو از طریق usart

      با سلام
      دوستان عزیز یه مشکل یا به عبارتی سوالی در مورد ارتباط یوزارت مطرح میشه اینه که بر فرض مثال فرستنده چندتا کاراکتر رو پشت سر هم میفرسته
      ریسور هم براش دستور getchar() رو نزده باشیم تکلیف این سه 4 تا کاراکتر چی میشه؟
      آیا از بین میرن یا داخل رجیستری ذخیره میشن؟
      اگر از بین میرن تکلیف چیه
      اگر که ذخیره میشن چجوری میشه بازبابیشون کرد و به چه ترتیبی میشه خارجشون کرد؟
      اگر کسی این موضوع رو برای من روشن کنه ممنون میشم

      دیدگاه


        #4
        پاسخ : ارتباط دو میکرو از طریق usart

        نوشته اصلی توسط Nimra
        با سلام
        دوستان عزیز یه مشکل یا به عبارتی سوالی در مورد ارتباط یوزارت مطرح میشه اینه که بر فرض مثال فرستنده چندتا کاراکتر رو پشت سر هم میفرسته
        ریسور هم براش دستور getchar() رو نزده باشیم تکلیف این سه 4 تا کاراکتر چی میشه؟
        آیا از بین میرن یا داخل رجیستری ذخیره میشن؟
        اگر از بین میرن تکلیف چیه
        اگر که ذخیره میشن چجوری میشه بازبابیشون کرد و به چه ترتیبی میشه خارجشون کرد؟
        اگر کسی این موضوع رو برای من روشن کنه ممنون میشم
        اگه با Getchar کار میکنید ومیکرو هم در پورت سریالش FIFO نداره بایتها رو از دست میدید، میتونید روی وقفه دریافت در سریال یک FIFO نرم افزاری بنویسید و هر موقع که لازم بود اطلاعات رو از اون بخونید ولی اگه پر بشه باز هم اطلاعات از دست میره.
        اسمایل، تومورو ویل بی وُرس

        دیدگاه


          #5
          پاسخ : ارتباط دو میکرو از طریق usart

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

          دیدگاه


            #6
            پاسخ : ارتباط دو میکرو از طریق usart

            نوشته اصلی توسط Nimra
            این FIFO که میگین رو تابع براش هست یا باید خودمون براش تابعی تعریف کنیم که مثلا کاراکتر اول رو دریافت کرد ذخیره کنه بعد بره سراغ کاراکتر بعدیو........
            یه سوال دیگه ای که داشتم این بود که وقتی کاراکتری ارسال میشه و بعد از اون دیگه دیتایی از طرف فرستنده نیاد باید دقیقا همون لحظه getchar زده بشه یا اگه مثلا چند لحظه بعد از اینکه دیتایی فرستاده شد دستور getchart زده بشه اون دیتا خونده میشه یا بازم از بین میره؟
            ببخشید سوالام زیاد شد،وقتی دیتایی فرستاده بشه روتین اینتراپت یوزارت گیرنده اجرا میشه که میشه اونجا کاراکترارو ذخیره کرد،درسته؟
            اون وقت این وقفه اولویتش نسبت به بقیه وقفه ها مثه تایمر ADC اینا چجوریه
            ممنون از توجهتون
            FIFO رو که باید خودتون بنویسید و با استفاده از اون دیگه نیازی به Getchar نیست. در وقفه FIFO پر میشه و در روتین برنامه یا هرجا که بخونیدش خالی میشه.
            وقتی از Getchar استفاده میکنید، اون تابع تا زمان دریافت یک کاراکتر صبر میکنه، در نتیجه برنامه در اون تابع اونقدر چرخ میزنه تا یک کاراکتر در پورت سریال دریافت بشه که به روش Polling معروفه، ولی برای استفاده از پورت سریال و اجرای همزمان برنامه چندین روش وجود داره که روش وقفه و FIFO تنها یکی از اونهاست. با استفاده از این روش در زمان دریافت، اطلاعات به صورت ترتیبی در FIFO قرار میگیرند و هر موقع که مثلا تابع FIFO_Read رو به جای Getchar فراخوانی کنید دیگه منتظر دریافت نخواهید موند و بایتها رو به ترتیب دریافت میکنید تا FIFO خالی بشه، اگر هم خالی شد اون تابع FIFO_Read مقدار بازگشتیش، حالا مثلا اگه با بولین تعریف کرده باشید، به شما این امکان رو میده که متوجه خالی بودن FIFO بشید و از اون قسمت رد بشید و منتظر دریافت بایت بعدی مثل Getchar نمونید، هر موقع هم که بایت جدیدی اومد دوباره همه مراحل تکرار میشه.
            مثلا اگه بین دوبار فرخوانی Getchar فاصله ای پیش بیاد و در اون زمان بایتهایی به پورت سریال فرستاده بشن، اگه FIFO نباشه اون بایتها روی بافر تک بایتی پورت سریال Overwrite میشن و از بین میرن.
            درسته، در وقفه دریافت کافیه بایت دریافتی رو در FIFO بریزید.
            اولویت وقفه ها در دیتاشیت کامپایلرها مشخصه، مثلا در IAR در Vector Table جدولی که مشخص کننده ترتیب و اولویت وقفه ها هست مشخص شده که به چه ترتیبی هست. میشه مشخصات اون جدول رو دستکاری کرد و اولویت ها رو جا به جا کرد، یکم تخصصی میشه و کار میبره چون در فایلهای مربوط به تنظیمات کامپایلره و در اختیار کاربر به صورت عادی نیست.
            اسمایل، تومورو ویل بی وُرس

            دیدگاه


              #7
              پاسخ : ارتباط دو میکرو از طریق usart

              واقعا ممنون که انقدر با حوصله و دقیق پاسخ میدید
              به عنوان آخرین سوالم من همین الان تو تنظیمات کد ویزارد کدویژن تنظیمات مربوط به یوزارت رو زدم تیک Interrupt رو هم فعال کردم انتظار داشتم تو برنامم یه روتینی مثه روتینای تایمر در اختیارم بذاره ولی اینجوری نشد
              میشه بگید چجوری میشه به روتین وقفه یوزارت دسترسی پیدا کرد

              دیدگاه


                #8
                پاسخ : ارتباط دو میکرو از طریق usart

                نوشته اصلی توسط Nimra
                واقعا ممنون که انقدر با حوصله و دقیق پاسخ میدید
                به عنوان آخرین سوالم من همین الان تو تنظیمات کد ویزارد کدویژن تنظیمات مربوط به یوزارت رو زدم تیک Interrupt رو هم فعال کردم انتظار داشتم تو برنامم یه روتینی مثه روتینای تایمر در اختیارم بذاره ولی اینجوری نشد
                میشه بگید چجوری میشه به روتین وقفه یوزارت دسترسی پیدا کرد
                به نظر میرسه در CV از همون روش FIFO استفاده شده چون در تنظیمات مقدار Receiver Buffer رو هم میگیره، در مورد وقفه هم گزینه موردنظر در تنظیمات هست، کدش هم اینجا نمونش هست:

                http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf
                http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=8 5692&start=0
                اسمایل، تومورو ویل بی وُرس

                دیدگاه


                  #9
                  پاسخ : ارتباط دو میکرو از طریق usart

                  سلام وقتتون بخیر باشه :agree:
                  بخشی از پروژه ی پایانی من در مورد ارتباط سریال دو میکرو میباشد که قصد دارم موج سینوس رو از میکرو اول به میکرو دوم بفرستم ،همزمان دامنه و فرکانس رو از میکرو دوم به میکروی اول ارسال کنم.(و البته از دو تا کلید مخصوص به فرکانس ،یکی برای کم کردن و یکی برای زیاد کردن و 2تا کلید برای کم و زیاد کردن دامنه استفاده کردم ،که متصل هستند به میکروی دوم)
                  مشکلی که دارم اینه که اولا این کار رو با تابع وقفه ی خود usart نمیتونم انجام بدم ، دوم اینکه وقتی بدون تابع وقفه این کار رو میکنم برای ارسال فرکانس جواب میده اما برای دامنه مشکل داره،یعنی فرکانس با فشردن کلید ها کم و زیاد میشه اما دامنه با فشردن کلید ها تغییری نمیکنه :sad:
                  مشکل کجاس؟

                  دیدگاه


                    #10
                    پاسخ : ارتباط دو میکرو از طریق usart

                    یه نگاهی به این بنداز:
                    http://www.special-topics.blogfa.com/post-4.aspx

                    دیدگاه


                      #11
                      پاسخ : ارتباط دو میکرو از طریق usart

                      نوشته اصلی توسط arsalan681
                      برنامه ارتباط دو میکرو از طریق usart به همراه سورس وهگز و فایل پروتئوس
                      http://www.4shared.com/file/194464307/2f0f8070/usart_397.html
                      The file link that you requested is not valid.

                      دیدگاه


                        #12
                        پاسخ : ارتباط دو میکرو از طریق usart

                        سلام
                        فایل خراب شده دوباره اپش کنید

                        دیدگاه


                          #13
                          پاسخ : ارتباط دو میکرو از طریق usart

                          کسی لینکشو نداره؟
                          Reveng will surely come... Your hard time are ahead
                          // - - - - - - - - - -
                          برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                          // - - - - - - - - - -
                          اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                          // - - - - - - - - - -

                          دیدگاه


                            #14
                            پاسخ : ارتباط دو میکرو از طریق usart

                            نوشته اصلی توسط arsalan681
                            برنامه ارتباط دو میکرو از طریق usart به همراه سورس وهگز و فایل پروتئوس
                            http://www.4shared.com/file/194464307/2f0f8070/usart_397.html
                            چرا هیچ کدوم از لینک های این سایت کار نمی کنند؟

                            دیدگاه


                              #15
                              پاسخ : ارتباط دو میکرو از طریق usart

                              دوستان سه تا مطلب زیر رو ببینن شاید مفید بود/////////////////دو تای اول آموزش --سومی : 3 تا پروژه ساده

                              http://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D 8%B1%D9%84%D8%B1-avr-%D8%AC%D9%84%D8%B3%D9%874/

                              http://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D 8%B1%D9%84%D8%B1-avr-%D8%AC%D9%84%D8%B3%D9%875/

                              http://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D 8%B1%D9%84%D8%B1-avr-%D8%AC%D9%84%D8%B3%D9%876/
                              اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                              اگه دوس دارید سریع به جواب برسید :
                              1) قبل از پرسیدن سوال، بسرچید.
                              2) سوالاتون رو با جزئیات کامل مطرح کنید.

                              دیدگاه

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