سلام، یک میکرو داریم که اطلاعات دی اکسید و دما رو به به لب ویو میفرسته به این صورت که متغیر اول دما فرستاده میشه و بعد از چند میلی ثانیه دیگه متغیر دوم دی اکسید فرستاده میشه. مشکل من اینه که چون توی یک متغیر پشت سر هم نیستن نمیتونم جداشون کنم و هر کدومو رو جداگونه نشون بدم.آیا کسی هست کمک کنه؟ ممنون.
اطلاعیه
Collapse
No announcement yet.
دریافت کامل از میکرو داخل لب ویو
Collapse
X
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
شما باید سر وته هر کدام از دادها رو با یک حروف مشخص ببندی (فریم بسازی) و سپس ارسالش کنی در سمت لب ویو هم با دریافت اون فریم مقدار مورد نظرت را از داخلش بیرون بکشی مثلا میکرو دما را به این صورت میقرسته: A دماB و در سمت لب ویو A و B را دور میریزی و دما را از داخلش بیرون میکشی تمام.
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
اول اینکه کاش مشخص میمردی متغیرهات نوعشون چیه؟
در هر صورت متغیرهای بیش از یک بایتی (مثل float یا int که تعداد بایتهاشون هم بستگی به کامپایلر داره) رو آدرسشونو میگیری و به تعداد بایتهاشون از اون آدرس به بعد رو ارسال میکنی
تو لب ویو هم همین بایها رو میگیری و شیفت میدی و به هم میچسبونی (با عملگر جمع یا or ) و بعدشم با type cast اون چیزی رو که میخوای بدست میاری
* اگه سرعت (و تعداد بایتهای ارسالی یا در واقع روش ارسال) هم برات مهم نیست خیلی راحت هر متغیر رو با تابع printf تبدیل کن به بایتهای اسکی و ارسال کن مثلا عدد 123 تبدیل میشه به سه کاراکتر 1'',2',3'
اونها رو ارسال کن بعد با توابع تبدیل اسکی به عدد (یا برنامه نویسی خودت)در لب ویو عکس کار فوق رو انجام بده
دیدگاه
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
نوشته اصلی توسط mojalanاول اینکه کاش مشخص میمردی متغیرهات نوعشون چیه؟
در هر صورت متغیرهای بیش از یک بایتی (مثل float یا int که تعداد بایتهاشون هم بستگی به کامپایلر داره) رو آدرسشونو میگیری و به تعداد بایتهاشون از اون آدرس به بعد رو ارسال میکنی
تو لب ویو هم همین بایها رو میگیری و شیفت میدی و به هم میچسبونی (با عملگر جمع یا or ) و بعدشم با type cast اون چیزی رو که میخوای بدست میاری
* اگه سرعت (و تعداد بایتهای ارسالی یا در واقع روش ارسال) هم برات مهم نیست خیلی راحت هر متغیر رو با تابع printf تبدیل کن به بایتهای اسکی و ارسال کن مثلا عدد 123 تبدیل میشه به سه کاراکتر 1'',2',3'
اونها رو ارسال کن بعد با توابع تبدیل اسکی به عدد (یا برنامه نویسی خودت)در لب ویو عکس کار فوق رو انجام بده
سلام،ممنون از شما دوستان که کمک می کنید. فقط آقای mojalan یکم موضوع رو پیچیده کردید.من متوجه نشدم ،قسمت ارسال دما و دی اکسید دست یکسری افراد دیگه هست و من فقط با لب ویو دریافت میکنم به اون صورتی که اونا فرستادن به صوزت رشته.
بچه ها ای که این اطلاعات رو برام میفرستن تا من با لب ویو دریافت کنم اول هر داده یک حرف میزارن تا من دریافت کنم. مثلا :
T33.23 {تاخیر میلی ثانیه}D125.45
میخوام بدونم با چه ابزاری میتونم بفهمونم که اگه اول رشته T بود 5 کاراکتر بعدشو بزار توی جعبه متن 1 و اگر به D رسید 5 کاراکتر بعدشو بزار توی جعبه متن دوم تازه تاخیرشو هم نمیدونم چیکار کنم. میتونید برام ابزارشو معرفی کنید؟؟؟؟؟ اگه میشه یک بلوک دیاگرام ساده هم شکلشو بازرید ممنون میشم.
دیدگاه
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
نوشته اصلی توسط hassan1366شما باید سر وته هر کدام از دادها رو با یک حروف مشخص ببندی (فریم بسازی) و سپس ارسالش کنی در سمت لب ویو هم با دریافت اون فریم مقدار مورد نظرت را از داخلش بیرون بکشی مثلا میکرو دما را به این صورت میقرسته: A دماB و در سمت لب ویو A و B را دور میریزی و دما را از داخلش بیرون میکشی تمام.
T33.23 {تاخیر میلی ثانیه}D125.45
میخوام بدونم با چه ابزاری میتونم بفهمونم که اگه اول رشته T بود 5 کاراکتر بعدشو بزار توی جعبه متن 1 و اگر به D رسید 5 کاراکتر بعدشو بزار توی جعبه متن دوم تازه تاخیرشو هم نمیدونم چیکار کنم. میتونید برام ابزارشو معرفی کنید؟؟؟؟؟ اگه میشه یک بلوک دیاگرام ساده هم شکلشو بازرید ممنون میشم.
دیدگاه
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
انشائ ا... که میتونید با پورت سریال تو لب ویو کار کنید
یه برنامه کوچولو به این صورت که
1- یه کاراکتر دریافت میکنید اگر T یا D نبود که هیچی و مرحله 1 تکرار میشود اگر بود به مرحله 2 میرویم
2- در یک ساختار case برای قسمت T 5 کارکتر و برای قسمت D 6 کاراکتر دریافت میکنیم و به مرحله 3 میرویم
3- کاراکترهای دریافتی در مرحله دو را با توابع convert string to double تبدیل به عدد اعشاری میکنیم و تمام
دیدگاه
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
نوشته اصلی توسط mojalanانشائ ا... که میتونید با پورت سریال تو لب ویو کار کنید
یه برنامه کوچولو به این صورت که
1- یه کاراکتر دریافت میکنید اگر T یا D نبود که هیچی و مرحله 1 تکرار میشود اگر بود به مرحله 2 میرویم
2- در یک ساختار case برای قسمت T 5 کارکتر و برای قسمت D 6 کاراکتر دریافت میکنیم و به مرحله 3 میرویم
3- کاراکترهای دریافتی در مرحله دو را با توابع convert string to double تبدیل به عدد اعشاری میکنیم و تمام
دیدگاه
-
پاسخ : دریافت کامل از میکرو داخل لب ویو
چرا کار خراب میشه عزیز.؟؟؟؟!!!!
شما اون کاری که گفتم رو انجام دادی؟
داخل یه حلقه وایل یه کاراکتر میخونی اگه T,D بود وارد کیس میشی وگرنه به خوندن ادامه میدی
داخل کیس هم دو حالت داری واسه T 5 کاراکتر میخونی واسه D 6 تا
بعدم با اون تابعی که گفتم تبدیل و خلاص
دیدگاه
دیدگاه