مساعدة عاجلة


(motaz4a) #1

[SIZE=“5”]السلام عليكم

كيف يمكن ان ارسل للبيك بيانات حجمها اكبر من بايت
انا استخدم microBasic واستخدم USART

انا اريد انا ارسل بيانات (ارقام) بصيغة float
هل يوجد من طريقة ؟؟؟
ساعدوني رجاءً[/size]


(msh2003) #2

sub procedure send_float(flt as float)
dim flt_txt as string[17]
FloatToStr(flt, flt_txt)
Usart_Write_Text(flt_txt)
end sub
للارسال


(motaz4a) #3

[B][SIZE=“5”][COLOR=“Blue”]مشكور اخي الكريم
ولكن من بعد اذنك هل تقصد ان اكتب sub procedure في بداية البرنامج لكي يتعرف على floating number ؟

ارجو التوضيح بمثال اذا كان ذلك ممكن ولك جزيل الشكر
[/color][/size][/b]


(msh2003) #4

اليك هذا المثال لاستخدام هذا البروسيجر وكيفية وضعه في الكود

program Usart_lib
dim my_float_num as float
sub procedure send_float(dim flt as float)
dim flt_txt as string[17]
FloatToStr(flt, flt_txt)
Usart_Write_Text(flt_txt)
end sub

main:

Usart_init(2400) ’ Initialize USART module (8 bit, 2400 baud rate, no parity bit…
my_float_num= 55.43
send_float(my_float_num)

end.


(motaz4a) #5

[B][SIZE=“5”][COLOR=“Blue”]مشكور جدا اخي الكريم
بدي اغلبك ما هي الطريقة للاستقبال - receive float

ولدي سؤال اخر ، لو عرفنا متغيرين as string وتم تخزين قيم في كل متغير واريد مقارنة محتوى كل متغير كيف يتم ذلك ؟؟
مع العلم اني جربت عملية المقارنة > < = لم تنفع واعطت error

لك جزيل الشكر [/color][/size][/b]


(msh2003) #6

السلام عليكم اذا كنت مستعجل على السترينج
فبامكانك استخدام الفنكشن
strcmp
بامكانك ايجادها في
help>mikrobasic libraries < string library

اما لكود الاستلام انا اقوم بانشاءه وساضعه في اقرب وقت ان شاء الله


(motaz4a) #7

[B][SIZE=“5”][COLOR=“Blue”]وعليكم السلام
اخي الكريم ماذا تقصد اذا كنت مستعجل هل يوجد طريقة اخرى لمقارنة سترينج ؟؟

انا بانتظارك على احر من الجمر يا ريت تفيدني باقرب وقت ولك جزيل الشكر
[/color][/size][/b]


(msh2003) #8

لا اقصد انني اقوم بعمل الفنكشن الخاصة بتحويل السترينج الى فلوت ولكنها اخذت مني بعض الوقت ولم اكملها بعد
فحبيت اعطيك طريقة لمقارنة السترينج المستخدمة في الميكروبيزك مع العلم انه يمكنك عمل طرق يدوية اخرى ولكن strcmp فنكشن جيدة وتفي بالغرض


(motaz4a) #9

انا خجلان منك اخي الكريم لاني غلبتك معي
يا ريت تفيدني باكبر قدر من المعلومات
بصراحة انا استخدم البيك في مشروعي وواجهت بعض المشاكل ويجب علي تسليم المشروع خلال شهر من الان
ف يا ريت تساعدني باسرع وقت ولك جزيل الشكر


(msh2003) #10

السلام عليكم
مرفق كود ارسال واستقبال فلوت باستخدام
usart

على ميكرو بيزك 6 او 7 يعمل

لم اجربه سيميلوشن ولكني تتبعت الكود باستخدام ال
debugger
واعطاني نتائج سليمة بنسبة عالية
انا بصدد عمل سيميوليشن على البروتس
ان شاء الله:)


(motaz4a) #11

اخي نزل الكود لكن الارسال والاستقبال فقط بايت وليس فلوت


(msh2003) #12

اخي الارسال والاستقبال لا يتم الا بالبايت وهذه من خصائص بوتوكول
USART
البرنامج المرفق يقسم الفلوت الى بايتات ثم يرسلمهم متتاليات
وعند الاستقبال يتم تجميع هذه البايتات وتحويلها الى فلوت مرة اخرى


(motaz4a) #13

اخي جربت الكود
لم ينفع على فلوت بل على ارقام من صيغة بايت فقط


(motaz4a) #14

ممكن تخبرني ما هي البرمجية المستخدمة للارسال والاستقبال ؟؟


(msh2003) #15

USART_write
هي البرمجية المستخدمة في الارسال وهي لا ترسل الا بايت واحد فقط
اما USART_write_text
تستخدم لارسال نص باكمله ولكنها تقسمها اجزاء الى بايت وثم ترسلهم واحدا تلو الاخر