PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل برنامه نویسی با keil



t.o.e
08-04-2011, 22:24
سلام:
من یه gps رو با lpc2378 راه اندازی کردم و اطلاعات رو از طریق lpc به pc میدم..حالا میخوام قبل از اینکه به pc بدم، بیام براش یه شرط بزارم که اگر دیتا مساوی GPRMC$ بود بعدش بیاد چاپ کنه...تو keil اینو نوشتم:


if(str=="$GPRMC")

puts(str)

else

printf("Waiting");

ولی این دستور اجرا نمیشه.
حالا چه شکلی به میکرو بفهمونم که اگر این بود بیا چاپ کن در غیر اینصورت صبر کن؟
یعنی به چه فرمی بنویسم؟

kasper
10-04-2011, 20:20
استرینگ رو که نمیشه اینطوری مقایسه کرد
از توابع فایل string.h تو کیل استفاده کنید
فکر کنم تابع strcmp بود (مقایسه دو استرینگ)

t.o.e
10-04-2011, 21:26
استرینگ رو که نمیشه اینطوری مقایسه کرد
از توابع فایل string.h تو کیل استفاده کنید
فکر کنم تابع strcmp بود (مقایسه دو استرینگ)

دوست عزیز :
لطف می کنید یه مثال برنامه نویسی بزنید یا آدرس بدید که من بیشتر مطالعه کنم.

alireza10471
11-04-2011, 00:32
دوست عزیز :
لطف می کنید یه مثال برنامه نویسی بزنید یا آدرس بدید که من بیشتر مطالعه کنم.
یک نمونه کد ساده که شما می توانید استفاده کنید این هست:

if (strcmp (lang, "en") == 0) { lang = "English"; }

t.o.e
11-04-2011, 03:32
سپاسگزارم.
یعنی من بیام رشتهای که همیشه اولش با gprmc$ هست و از طرف فرستنده فرستاده میشه با رشته "gprmc$" مقایشه کنم و چون اونیکه از طرف فرستنده میاد با این فرق میکنه و ..... میاد اونو چاپ میکنه؟ یا باید بگم این دو تا رو مقایسه کن و اونی که بزرگتر بود بیا چاپ کن؟

fatemehjml
11-04-2011, 15:33
سلام
من چند تا پیشنهاد برای پروژه تون دارم:

1. توابع string.h رو کامل مطالعه کنید و یه روش خوب می تونید از داخلش پیدا کنید. از این لینک (You can see links before reply)

2. هر چی از پورت سریال می گیرید با هدر $GPRMC به صورت تک تک مقایسه کنید. مثلا اگه کاراکتری که دریافت شد $ بود برو به این حلقه و اگه دوباره کاراکتر بعدی GPR بود شروع کن به ذخیره ی آرایه تا به <CR>, <LF> برسی. البته شاید خیلی بهینه نباشه.

3. کتاب مبانی C آقای داورپناه جزی خیلی خوب این مبحث رشته ها رو توضیح داده. اگه مطالعه کنید خیلی بهتون کمک می کنه.

موفق باشید

t.o.e
11-04-2011, 19:49
سلام:
من در حال حاضر باید برم مطالعه کنم و وقتی که به این توابع مسلط شدم، بعدش بیام سوالاتمو بپرسم.
همه این حرف ها منوط بر این می باشد که کتابخانه string.h برای keil موجود باشد.
آیا تو خود سایت keil هم هست؟


چطوری میشه که وقتی من دارم رشته میفرستم بعدش بیام کاراکتر، کاراکتر جستجو کنم؟
برای جستجو $، اگر به این فرم بنویسم '$'.....keil...خطا میگیره.چون من کاراکتر تعریف نکردم.

من یه فایل string.h تونستم از اینترنت پیدا کنم.براتون میزارم ببینید اگر ok بود و تو keil با lpc جواب داد.به منم بگید.

مطالعه میکنم و ظرف سه روز آینده میام.

t.o.e
13-04-2011, 00:53
سلام:
ممنون از همه راهنماییهاتون.بدون نیاز به توابع string و خیلی راحت جواب گرفتم.به محض تکمیل شدن حتما براتون میزارم.

t.o.e
13-04-2011, 04:15
دوستان شب همگیتون بخیر:
من جواب گرفتم.اینم کد برنامه ای که نوشتم.
شما می تونید هر پروتکلی رو که خواستید و هر جایی شو که خواستید با این برنامه(البته با تغییرات مقادیر رشته ها و حروف پروتکل و شماره کاراکترها)نشون بدید.
برنامه اش مبتدی هست ولی فعلا کار منو راه اداخته.
خوشحال میشم نظرات تونو در جهت بهینه تر شدن برنامه بگید( در صورت تمایل).
موفق و موید باشید.