سلام خدمت تمامی دوستان،
یک سوالی درمورد ساختار UART توی AVR ها داشتم. خواهشا هرکدوم از دوستان که اطلاعاتی داره راهنمایی کنه:
همون طوری که می دونین وقتی یه قطعه ای که با UART کار میکنه مثل GPS رو به میکرو وصل کنیم میشه با استفاده از تابع gets یا scanf اطلاعات رو پیدا کرد. حالا سوالی که برام پیش اومده اینه که فرض کنین GPS ما یه بسته داده میفرسته، میکرو هم داره یه کاری رو انجام میده و درگیر محاسبات و پردازش توی یه قسمت دیگه از برنامه هست. تا قبل از اینی که میکرو بیاد این اطلاعات رو بخونه GPS ما یه داده دیگه میفرسته. حالا سوال این جاست که توی این وضعیت چه اتفاقی می افته؟
آیا داده های اولی پاک میشن داده های جدید جاشون میشینن؟
آیا داده های اولی پاک نمیشن و یه جایی کپی میشن و داده های جدید هم دریافت میشن؟
آیا داده های اولی توی بافر دریافت میمونن و داده های جدید دریافت نمیشن؟
و وقتی این دفعه با تابع gets یا scanf اطلاعات رو بخونی کدوما رو بهت میده؟
خلاصه چه اتفاقی می افته و آیا کنترل میشه؟
درضمن این نکته رو بگم که من با Codevision کار میکنم و اگه توضیحی که مربوط به کامپایلر میشه لطفا برای Codevision توضیح بدین.
ممنون
یک سوالی درمورد ساختار UART توی AVR ها داشتم. خواهشا هرکدوم از دوستان که اطلاعاتی داره راهنمایی کنه:
همون طوری که می دونین وقتی یه قطعه ای که با UART کار میکنه مثل GPS رو به میکرو وصل کنیم میشه با استفاده از تابع gets یا scanf اطلاعات رو پیدا کرد. حالا سوالی که برام پیش اومده اینه که فرض کنین GPS ما یه بسته داده میفرسته، میکرو هم داره یه کاری رو انجام میده و درگیر محاسبات و پردازش توی یه قسمت دیگه از برنامه هست. تا قبل از اینی که میکرو بیاد این اطلاعات رو بخونه GPS ما یه داده دیگه میفرسته. حالا سوال این جاست که توی این وضعیت چه اتفاقی می افته؟
آیا داده های اولی پاک میشن داده های جدید جاشون میشینن؟
آیا داده های اولی پاک نمیشن و یه جایی کپی میشن و داده های جدید هم دریافت میشن؟
آیا داده های اولی توی بافر دریافت میمونن و داده های جدید دریافت نمیشن؟
و وقتی این دفعه با تابع gets یا scanf اطلاعات رو بخونی کدوما رو بهت میده؟
خلاصه چه اتفاقی می افته و آیا کنترل میشه؟
درضمن این نکته رو بگم که من با Codevision کار میکنم و اگه توضیحی که مربوط به کامپایلر میشه لطفا برای Codevision توضیح بدین.
ممنون
دیدگاه