با سلام به همه من هنگام دریافت از usart با دستورات مختلف مثلا scanf() یا getchar() تمام برنامه متوقف میشه اگر از usart چیزی دریافت شد بعد مراحل بعدی برنامه اجرا میشود چکار کنه که برنامه ام در حال اجرا باشه وقتی اطلاعات به usart رسید دستور getchar یا scanf فعال بشه مرسی
اطلاعیه
Collapse
No announcement yet.
usart
Collapse
X
-
پاسخ : usart
سلام
بهتر بود ابتدا در مورد usart در همین سایت جستجو میکردید
اما پاسخ شما:
شما باید از وقفه استفاده کنی
یوزارت هم وقفه نوشتن داره هم وقفه خوندن
یعنی با فعال کردن هرکدومشون میتونی یک وقفه داشته باشی
مثلا اگه وقفه ی دریافت رو فعال کرده باشی
به محض اینکه داده ای دریافت بشه
و بافر گیرنده پر بشه
یکی از پرچم های وقفه -مربوط به وقفه گیرنده یوزارت- یک شده
و برنامه ت به زیر برنامه ی وقفه انتقال پیدا میکنه
حالا میتونی داده رو با دریافت کنی
یعنی کافیه محتویات بافر رو در این لحظه
به متغیر دلخواهت منتقل کنی.
لینک های زیر هم ببین:
http://www.eca.ir/forum2/index.php?topic=57824
http://www.eca.ir/forum2/index.php?topic=79267
http://www.eca.ir/forum2/index.php?topic=42531
:read:1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
3: دلا معاش چنان کن که گر بلغزد پای *** فرشتهات به دو دست دعا نگه دارد (حافظ)
دیدگاه