اطلاعیه

Collapse
No announcement yet.

مشکل در اینتراپت usart کدویژن

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

    مشکل در اینتراپت usart کدویژن

    سلام به همه ی دوستان
    من یه برنامه در محیط کدویژن نوشتم که اطلاعات از طریق پورت سریال دریافت میشه واین برنامه با وقفه (USART Receiver interrupt) نوشتمش ، برنامم درست کار میکنه یعنی وقتی یدونه تک کاراکتر خاص میفرستم دریافت میکنه و دستوراتمو اجرا میکنه اما مشکل من اینجاست که میخوام مثلا یه کلمه خاص ارسال کنم به میکرو و اونو مورد بررسی قرار بده اما این اتفاق نمیفته!!!
    دوستان اگه کسی تجربه ای داره ممنون میشم کمک کنه با تشکر.

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

    میتونم حدس بزنم که شاید بخوای چکار کنی
    شما کاراکتر خاص اولی رو درست دریافت میکنی پس این مشکلی نیست
    حالا کافیه بدونی کاراکتر آخریت چیه.
    اما ممکنه کلمه شما، توش چند بار کاراکتر آخری تکرار شده باشه پس نمیشه

    نکته
    ما وقتی داریم ارتباط سریال کار میکنیم ممکنه ابتدای رشته ارسالیمون هر کاراکتری باشه (عدد یا حرف) اما همیشه کاراکتر آخریمون همیییییشه یکیه
    و اون کاراکتر کسی نیست جز ENTER.
    به همین سادگی شما وقتی کاراکتر خاص اول کلمه رو دریافت کردی، انقدر کاراکتر دریافت می کنی تا به کاراکتر ENTER یا 'r\' برسی
    وقتی به اینتر رسیدی یعنی کلمه کامل دریافت شده و کارت رو روی اون رشته دریافتی انجام میدی

    دیدگاه


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

      ممنون از شما بابت توضیحاتتون، فقط اگه میشه یکم راهنمایی کنید این r\ یا اینتر توو برنامه به چه نحوی نشخیص بدم که وارد شد توسط کاربر یا خیر؟

      دیدگاه


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

        ببین
        هر وقفه یک کاراکتر دریافت میکنه
        و اینتر هم یک کاراکتره
        پس:
        کد:
        if(data=='\r')
        یا

        کد:
        if(data==13)
        هر دو شرط بالا یکی هستند چون معادل عدد اینتر میشه 13

        دیدگاه

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