ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





  1. #1
    تاریخ عضویت
    2007/12/12
    63
    0

    راهنمایی در مورد وقفه سریال

    با عرض سلام و درود
    من میخوام با کامپیوتر یه سری داده رو به از طریق پورت سریال به میکرو ارسال کنم و وقتی که یه کاراکتر خاص مثلا A دریافت شد میکرو داده های قبلی رو تا وقتی که داده ی جدیدی ارسال نشده به ترتیب روی یکی از پورتهاش نمایش بده، و زمانی که داده جدیدی ارسال شد دوباره تا دریافت A به دریافت ادامه بده و... .
    من از وقفه سریال برای این کار استفاده کردم و مطابق کدهایی که توی سایت بود کدم رو نوشتم ولی جواب دلخواه رو نگرفتم، کد رو قرار میدم ممنون میشم راهنمایی کنید.

    ...
    Enable Interrupts
    Enable Urxc
    On Urxc Label

    Dim A As Integer , B As Integer
    Dim Receive(514) As Byte

    $asm
    CLI
    LDI R16,$2
    Out Ucsra , R16
    LDI R16,$10
    Out Ucsrb , R16
    LDI R16,$86
    Out Ucsrc , R16
    CLR R16
    Out Ubrrh , R16
    LDI R16,$33
    Out Ubrrl , R16
    SEI
    $end Asm

    Do
    For A = 1 To B
    Portb = Receive(a)
    Next A
    Loop
    End

    Label:
    For A = 1 To 514
    $asm
    L:
    SBIS UCSRA,7
    RJMP L
    $end Asm
    Receive(a) = Udr
    If Receive(a) = 65 Then
    B = A - 1
    Exit For
    End If
    Next A
    Return
    • تبلیغات
      .

  2. #2
    تاریخ عضویت
    2010/07/13
    تهران
    1,283
    33

    پاسخ : راهنمایی در مورد وقفه سریال

    سلام
    میتونی از این دستور استفاده کنی .!

    (?)var = waitkey

    که بجای علامت سوال میتونی مثلا همون A رو بنویسی
    پس در این صورت میکرو منتظر میمونه تا کامپیوتر دستور A رو بفرسته
    AV Maziton 100
    Render By Artlantis Studio
    Hidden Content
  3. #3
    تاریخ عضویت
    2007/12/12
    63
    0

    پاسخ : راهنمایی در مورد وقفه سریال

    نقل قول نوشته اصلی توسط maziyar123
    میتونی از این دستور استفاده کنی .!

    (?)var = waitkey

    که بجای علامت سوال میتونی مثلا همون A رو بنویسی
    پس در این صورت میکرو منتظر میمونه تا کامپیوتر دستور A رو بفرسته
    من نمیخوام میکرو منتظر بمونه، بلکه یه سری داده رو که با کاراکتر A ختم میشه بگیره و تا زمانی که داده جدیدی نیومده سری داده قبلی رو به ترتیب بفرسته روی پورت B.
  4. #4
    تاریخ عضویت
    2009/10/13
    174
    11

    پاسخ : راهنمایی در مورد وقفه سریال

    اگه از Ischarwaiting استفاده کنی دیگه برنامت برا رسیدن دیتای سریال منتظر نمیمونه
    اگه کل کاری که میکرو قراره انجام بده همینه که نیاز به وقفه سریال هم نداره
    فقط شما این آقای Ischarwaiting رو داخل حلقه ای که آرایه رو می ریزه رو پورت قرار بده که اگه تو این فاصله دیتایی اومد از دستش ندی
    Do
    For A = 1 To B
    if ischarwaiting=1 then var=inkey
    Portb = Receive(a
    Next A
    Loop
    End
  5. #5
    تاریخ عضویت
    2007/12/12
    63
    0

    پاسخ : راهنمایی در مورد وقفه سریال

    آقا مجید دستت درد نکنه، مشکل ما رو حل کردی :wow: :wow:.

    فقط من متوجه شدم که Ischarwaiting یه تابع هست و باید به همراه پرانتز به کار بره یعنی اینطوری ()Ischarwaiting
نمایش نتایج: از 1 به 5 از 5

موضوعات مشابه

  1. درخواست راهنمایی در مورد برنامه نویسی وقفه ها با بسکام
    توسط mahmood1517 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2016/01/17, 12:29
  2. تداخل وقفه سریال با وقفه تایمر در بیسکام
    توسط حامد رحیمی در انجمن میکروکنترلرهای AVR
    پاسخ: 11
    آخرين نوشته: 2015/03/25, 20:41
  3. راهنمایی در مورد ارتباط سریال و کدهای اسکی
    توسط amin0065 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2012/12/15, 15:03
  4. راهنمایی در مورد ارتباط سریال( Rs232)
    توسط skiboys در انجمن میکروکنترلرهای AVR
    پاسخ: 78
    آخرين نوشته: 2012/10/20, 08:58
  5. پاسخ: 0
    آخرين نوشته: 2010/06/08, 21:46

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •