قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 30-09-2013, 08:06 PM المشاركة 1   
ha الامر ارسال واستقبال من نوع text بنظام uart



سلام عليكم
عندي سؤال حول الاتصال التسلسلي الغير متزامن يعني استخدام RS232
1- كيف يتم ارسال جمله يعني مثلا ارسل كلمه open الى البك أخر يقوم بعمل ما
واذا

2- كيف يستقبل البك جمله ما يعني انا ارسلت له كلمه open
انا اعرف يوجد الامر ارسال وهو
("uart1_write_text("open

اما امر الاستقبال من نوع text


(uart1_read_text(output,"ok",10
ولكن انا مش فاهم شنو فائده ok
ارجوا توضيح وانا حسب ما افتهمت من شرح الامر اعلاه انه ماينفذ الامر الا اذا وجد كلمه ok بنهايه جمله ايضا كلمه open لايوجد فيها ok هل اكتب بنهايه كلمه
("uart1_write_text("openok

اعلانات

Mohammedalharbi
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2012
المشاركات: 58
نشاط [ Mohammedalharbi ]
قوة السمعة:
قديم 30-09-2013, 11:06 PM المشاركة 2   
افتراضي


وعليكم السلام ورحمة الله
"اوك " فائدتها انه تخبر امر الاستقبال باكتمال الجملة المرسلة. وهذا يفيدنا اذا بنرسل قراءة حساسات مختلفة ونريد ان نفرق بين كل قراءة ولا يقراءها جميعاً في نقس اللحظة. مثلاً
char sensor1= (uart1_read_text(output,"ok",10
char sensor2= (uart1_read_text(output2,"ok",10
.
.
etc

ولمعرفة المزيد عن الاتصال الغير متزامن, تابع هذا الشرح ان شاءالله يفيدك اكثر
http://www.eeecb.com/vb/showthread.php?t=768

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 01-10-2013, 02:12 PM المشاركة 3   
افتراضي


وعليكم السلام ورحمة الله
"اوك " فائدتها انه تخبر امر الاستقبال باكتمال الجملة المرسلة. وهذا يفيدنا اذا بنرسل قراءة حساسات مختلفة ونريد ان نفرق بين كل قراءة ولا يقراءها جميعاً في نقس اللحظة. مثلاً
char sensor1= (uart1_read_text(output,"ok",10
char sensor2= (uart1_read_text(output2,"ok",10
.
.
etc

ولمعرفة المزيد عن الاتصال الغير متزامن, تابع هذا الشرح ان شاءالله يفيدك اكثر
http://www.eeecb.com/vb/showthread.php?t=768
اخي كريم
اولا شكر لك على ردك
ولكن يوجد خطأ في كود char sensor1= (uart1_read_text(output,"ok",10
والصحيح يكتب هكذا uart1_read_text(output,"ok",10 لان بيانات سوف تخزن في output وهي مصفوفه من نوع char
كود:
void UARTx_Read_Text(char *Output, char *Delimiter, char Attempts);
انا شي الذي لم افهمه وهو كيف ارسل جمله هل اضع معها امتداد كلمه ok
لاحظ كود
كود:
char i[8],x;
void main()
{
Uart1_Init(9600);
trisb=0;
portb=0x00;
delay_ms(100);
while(1)
   {
   if (Uart1_Data_Ready())
          { UART1_Read_Text(i,"ok",11);
            if(i[0]=='A'&& i[1]=='L'&& i[2]=='I'){portb.f0=1;} // ali
            if(i[0]=='b') //b
                    { for(x=0;x<10;x++)
                            {
                             portb.f0=1;
                             delay_ms(250);
                              portb.f0=0;
                             delay_ms(250);
                            }
                    }
           }
   }
}
هنا اذا استلمت كلمه ALI يصبح portb.f0=1
بالنسبه لكي يعمل هل يتم الارسال
كود:
UART1_Write_Text("ALI");
او
كود:
UART1_Write_Text("ALIok");


Mohammedalharbi
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2012
المشاركات: 58
نشاط [ Mohammedalharbi ]
قوة السمعة:
قديم 01-10-2013, 09:40 PM المشاركة 4   
افتراضي


السلام عليكم ورحمة الله
شكراً اخي لتصحيح الخطا. انا لم اتعامل مع مايكروسي في البرمجة, ولكن بحثت على السريع في جوجل وحبيت اساعد. ان شاءالله يقدروا الاخوان يساعدونك. بس اخي جرب وشوف النتيجة بنفسك. وضع احتمال انه ممكن نفس مايكروسي يضع ال ok في نهاية الارسال, يعني ممكن مو لازم تكتبها انت. لو تسوي بحث في النت وتكتب UART1_Write_Text, تلاحظ جميع الاكواد بدون "اوك". والتجربة غير برهان. موفق ان شاءالله.


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-10-2013, 05:00 PM المشاركة 5   
افتراضي


ماهي فائده هذين امرين بعد الامر الارسال انظر كود
كود:
UART1_Write_Text("Start");
  UART1_Write(13);
  UART1_Write(10);


سعد الجسري
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2005
الدولة: UAE
المشاركات: 144
نشاط [ سعد الجسري ]
قوة السمعة:
قديم 02-10-2013, 06:28 PM المشاركة 6   
افتراضي


السلام عليكم
13 نهاية السطر
10 الانتقال إلى سطر جديد


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-10-2013, 06:32 PM المشاركة 7   
افتراضي


السلام عليكم
13 نهاية السطر
10 الانتقال إلى سطر جديد
شكر لك اخي كريم
عندي سؤال هل وجودهما ضروريان ام لا
ومتى أستخدمهما


سعد الجسري
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2005
الدولة: UAE
المشاركات: 144
نشاط [ سعد الجسري ]
قوة السمعة:
قديم 02-10-2013, 07:10 PM المشاركة 8   
افتراضي


على هواه البرنامج
مثلا إريد أن أبعث قيم الثمانية من adc ثمانية مداخل
فسوف يرسل القيم بعدها ينتقل إلى سطر جديد
وبعدها قيم جديدة مرة اخرى .. وهكذا
أفضل أن تعمل برنامج جديد uaert وترا النتائج



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 12:57 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)