اطلاعیه

Collapse
No announcement yet.

مشکل گیر کردن در خواندن پورت سریال

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

    مشکل گیر کردن در خواندن پورت سریال

    سلام دوستان
    من یه مشکلی دارم

    وقتی نرم افزار میره پورت سریال رو بخونه اگه اطلاعات نیاد همون جا گیر می کنه . می خوام یه پیغام خطا بده برگرده !
    فکر می کنم با راه اندازی یه تایمر بشه این مشکلو حل کرد ولی نمی دونم چطوری ؟ oo:

    - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

    #2
    پاسخ : مشکل گیر کردن در خواندن پورت سریال

    خوب دستوری که میخواد از پورت سریال دیتا بگیره کارش همینه، اینقدر وایمیسه تا یه دیتا بیاد و بگیرتش و تحویلت بده.
    برای این کار شما، میکرو این قابلیت رو داره که هروقت یه بایت دیتا وارد سریالش شد (فقط حالت سخت افزاری این رو پشتیبانی میکنه!) یه اینتراپت براتون ایجاد کنه، اونوقت شما میتونید برنامه رو جوری بنویسید که به جای اینکه بره وایسه تا یه دیتا بیاد، کار خودش رو انجام بده و هروقت دیتا اومد و اینتراپت اجرا شد بره دیتارو برداره و پردازش مورد نظر رو روش انجام بده.
    برید دنبال اینتراپت واحد سریال AVR بگردین، مطلب در بارش هست، با یه سرچ میتونید پیدا کنید.
    ;()((void (*)(void))0x0000))

    دیدگاه


      #3
      پاسخ : مشکل گیر کردن در خواندن پورت سریال

      ممنون از پاسختون . :rolleyes:

      متوجه صحبت شما می شم . ولی دستگاهی که من باهاش کار می کنم مدام در حال ارسال دیتا است من نمی تونم از اینتراپت استفاده کنم می خوام زمانی که نیاز به گرفتن دیتا هست برم بخونم و بیام . حالا می خوام اگه مشکلی وجود داشت و مثلا اون دیوایس خاموش بود یا سیمی چیزی قطع بود . نرم افزار من گیر نکنه . قبلا شنیده بودم میشه یه تایمری رو همزمان باهاش کار بندازم و اگر جوابی از پورت نیومد اون تایمر یه جورایی برنامه رو برام برگردونه . :icon_razz:
      - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

      دیدگاه


        #4
        پاسخ : مشکل گیر کردن در خواندن پورت سریال

        خوب شما هر وقت که نیاز دارین دیتارو بخونید، میتونید اینتراپت ها رو فعال کنید و تو یه مدت مشخص ببینید که اینتراپتی میاد یا نه
        ;()((void (*)(void))0x0000))

        دیدگاه


          #5
          پاسخ : مشکل گیر کردن در خواندن پورت سریال

          سلام
          در واقع کار دستور getchar این است که یک whail دارد تا زمانی که فلان فلگ (بیت از رجیستر) به آن مقدار نرسیده از این حلقه بیرون نیا!!!
          پس شما باید بروید اسم رجیستر را از میکرو پیدا کنید و یک شرط قرار بدهید منم با مشکل شما رو به رو بودم و هین کار را انجام دادم.
          شما می توانید یک if قرار بدهید هر وقت شرط برقرار شد برود و getchar کند ولی اگر اطلاعاتتون از اسکن if کمتر باشه با مشکل رو به رو می شوید.
          دکتر چمران در 1311 در تهران متولد شد
          وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
          او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

          دیدگاه


            #6
            پاسخ : مشکل گیر کردن در خواندن پورت سریال

            نوشته اصلی توسط SAJAD-G
            خوب شما هر وقت که نیاز دارین دیتارو بخونید، میتونید اینتراپت ها رو فعال کنید و تو یه مدت مشخص ببینید که اینتراپتی میاد یا نه
            درست متوجه شدم ؟ من می یام همون لحظه ای که می خوام دیتا رو بخونم اینتراپت ریسیو رو فعال می کنم ( می شه ؟) بعد توی یه حلفه کانتر دار صبر می کنم ببینم دیتا می یاد یا نه ؟ اگه بیاد که کار انجام میشه . اگه نیاد که حلقه بدون انجام کار تموم میشه و من متوجه میشم که دیتا نیومده . فکر کنم عملی باشه باید تستش کنم . :applause:
            - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

            دیدگاه

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