اطلاعیه

Collapse
No announcement yet.

مشکل با Timeout در ارتباط سریال USART

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

    مشکل با Timeout در ارتباط سریال USART

    سلام
    من یه برنامه برای فرستنده وگیرنده hmt وhmr نوشتم که در دستورات ارتباط سریال اون ها دچار مشکل شدم اون هم اینه که وقتی برای میکرو گیرنده از دستور scanf استفاده میکنی میکرو تا زمانی که بهش دیتای سریال نرسه توی این دستور قفل میکنه چون برای این دستور تعریف شده وقتی بافر اون از دیتا ها پر نشه همچنان منتظر دیتا بماند تا قیام قیامت :mrgreen: حالا موندم چکار کنم .مگر این دستور نباید Timeout داشته باشه و مثلا تا 10 ثانیه منتظر بمونه و بعد خروجی NULL را بده ؟؟؟؟
    لطفا من را راهنمایی کنید
    ممنون :bye
    قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

    #2
    پاسخ : مشکل با Timeout در ارتباط سریال USART

    یعنی کسی نمی دونه!!!!!!!!!!!!!!!
    قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

    دیدگاه


      #3
      پاسخ : مشکل با Timeout در ارتباط سریال USART

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

      دیدگاه


        #4
        پاسخ : مشکل با Timeout در ارتباط سریال USART

        کسی نظری نداره...... :read: :nerd:
        قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

        دیدگاه


          #5
          پاسخ : مشکل با Timeout در ارتباط سریال USART

          شما باید تو حالت وقفه استفاده کنید تا منتظر نمونه

          دیدگاه


            #6
            پاسخ : مشکل با Timeout در ارتباط سریال USART

            نوشته اصلی توسط mohsen_22
            یعنی کسی نمی دونه!!!!!!!!!!!!!!!
            سلام
            منظورم یه چیزی تو این مایه ها بود ببین میتونی ازش ایده بگیری . . .
            کد:
            void InitTimer1(){//مقدار دهی تایمر یک به اندازه ای که لازم هست وقفه انجام شود
            TCNT1H=0xaa; //
            TCNT1L=0xff; //
            }
             interrupt [TIM1_OVF] void timer1_ovf_isr(void){//تابع سرریزی تایمر
              InitTimer1();
             Goto Next Step();
              } 
            void WaitingRecive(){ // تابع انتظار دریافت
             InitTimer1();//
             UCSRB=0x10; //
            for(;;){
             if (getchar())Goto Next Step();
             break;
             }
            }

            دیدگاه


              #7
              پاسخ : مشکل با Timeout در ارتباط سریال USART

              با سلام

              لطفا هدفتون رو واضح توضیح بفرمایید تا ببینم کلا چی می خواین و در صورت توان کمکتون کنم.
              موفق باشید
              چرا ناراحتی پاتریک!
              + امروز ی بچه دیدم سرچهارراه گل میفروخت
              - از دیدنش ناراحت شدی؟
              + نه
              پس چی ناراحتت کرده
              + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
              ------------------------------------------------------------------------------------------------------
              تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
              ------------------------------------------------------------------------------------------------------
              محصولات

              دیدگاه


                #8
                پاسخ : مشکل با Timeout در ارتباط سریال USART

                از این دستورها استفاده کن دیگه:
                واسه ارسال اطلاعات:
                print
                printbin
                واسه دریافت اطلاعات:
                input
                inputbin.
                با اینا راحتری.
                به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                (پيش به سوي هدف)

                دیدگاه


                  #9
                  پاسخ : مشکل با Timeout در ارتباط سریال USART

                  سلام
                  من با دوتا mega8 ماژول های hmr و hmt را برنامه نویسی کردم توی فرستنده چون باید رشته می فرستادم از دستور puts استفاده کردم و توی گیرنده از دستور scanf حالا مشکل من با این دستورات سطح بالاست چون اگه میکرو فرستنده خاموش باشه یا ریست بشه همه چیز توی گیرنده بهم می ریزه چون scanf همیشه منتظر میمونه تا بافر داده اش پر بشه و اگه اطلاعاتی بهش نرسه کلا میکرو را نگه می داره تا بافرش پر بشه
                  توی شبیه ساز درست کار میکنه ولی توی عمل قات میزنه در صوری ریست کردن هر کدام از میکرو ها..
                  این هم فایل های برنامه

                  http://depositfiles.com/files/m1cxvi1qv

                  :nerd: :nerd: oo:
                  قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

                  دیدگاه


                    #10
                    پاسخ : مشکل با Timeout در ارتباط سریال USART

                    نوشته اصلی توسط hosseinam1370
                    از این دستورها استفاده کن دیگه:
                    واسه ارسال اطلاعات:
                    print
                    printbin
                    واسه دریافت اطلاعات:
                    input
                    inputbin.
                    با اینا راحتری.
                    برای گیرنده حتما باید از scanf استفاده کنم تا نوع دریافتم را مشخص کنم تا کد ورمز هام درست کار کنه
                    :nerd:
                    قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

                    دیدگاه


                      #11
                      پاسخ : مشکل با Timeout در ارتباط سریال USART

                      ببین دوست عزیز من هنوز متوجه نشدم که ایا موندن میکرو پشت دستور scanf باعث قاطی شدن میشه یا نه ؟ :sad:
                      راستی من قبلا با سی و بیسیک مثالهایی برای این ماژول ها گذاشته بودم که فکر کنم بدردت بخوره.
                      یه سرچ بزنی شاید بتونی پیداشون کنی.
                      چرا ناراحتی پاتریک!
                      + امروز ی بچه دیدم سرچهارراه گل میفروخت
                      - از دیدنش ناراحت شدی؟
                      + نه
                      پس چی ناراحتت کرده
                      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                      ------------------------------------------------------------------------------------------------------
                      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                      ------------------------------------------------------------------------------------------------------
                      محصولات

                      دیدگاه

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