اطلاعیه

Collapse
No announcement yet.

نکته ای درباره تعریف آرایه در avr و پورت سریال

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

    نکته ای درباره تعریف آرایه در avr و پورت سریال

    با سلام
    امروز یه برنامه نوشته بودم که توش دو تا آرایه داشت . برنامه به این صورت بود که یک ماژول به پورت سریال اول usart0 میکرو وصل بود و اطلاعات ارسال شده از ماژول توی آرایه اول ذخیره می شد سپس از طریق usart1 برای کامیوتر ارسال میشد .از طرف دیگه هرچی از طرف کامپیوتر روی پورت سریال دوم usart1 میامد داخل آرایه دیگر ذخیره میشد و وقتی 10 کاراکتر میشدند دوباره به کامپیوتر باز فرستاده میشدند.
    قسمت دوم برنامه درست کار میکرد اما یک مشکل عجیب اینجا بود: وقتی ماژول دیتاش رو به میکرو میفرستاد ، میکرو هم اطلاعات ماژول رو برای کامپیوتر ارسال می کرد و هم 1اون 10 تا کاراکتری که دفعه فبل از کامپیوتر گرفته بود
    مثلا اگر کامپیوتر برای میکرو میفرستاد ali . دوباره میکرو به کامپیوتر میفرستاد ali ...
    اما وقتی ماژول به میکرو میفرستاد 12345 اونوقت میکرو به کامپیوتر میفرستاد12345ali
    کلی تو برنامه گشتم تو مدارم بررسی کردم که شاید جایی بین پایه ها اتصالی رخ داده و داده ها داره اکو میشه روی پورت دیگر میکرو .... اما نشد
    بالاخره مشکل رو پیدا کردم
    توی اول برنامه ، من دو تا آرایه رو توی دو تا خط پشت سر هم تعریف کرده بودم (که احتمالا توی خانه های حافظه هم کنار هم قرار می گرفتند!) اما بعدش بین اون دو تا آرایه یک خط اضافه کردم و یک متغیر دیگه تعریف کردم ... برنامه درست شد!!!
    گفتم اینو بگم شاید کسی بعدا به همچین مشکلی برخورد کنه
    Don't hesitate to ask any question ..

    #2
    پاسخ : نکته ای درباره تعریف آرایه در avr و پورت سریال

    اگه این کارو نکردی: شما اگه آخر آرایت عدد صفر بذاری(مثلا فرض کن ali رو دریافت کردی که میشه3کاراکتر،حالا بیا و خونه چهارم آرایت رو برابر 0 (یا همون مقدار Null)قرار بده اینجوری دیگه هرچی بعدش قرار بگیره چاپ نمیشه، یعنی اون Null نشون دهنده پایان آرایست)
    اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

    دیدگاه

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