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

   

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



شكرا على تجاوبك اخي حسن
بالنسبة لدالة الارسال التالية :
كود:
// Send Status SMS 
void Send_Msg(char* Msg) 
{ 
       GM862_Send(atc3); 
       while (rsp != GSM_Ready_To_Receive_Message) ; 
       GM862_Send_Ram(Msg); 
       UART1_Write(0x1A); 
       UART1_Write(0x0D); 
       while (rsp != GSM_OK) ; 
}
استبدلتها بهذه كما وضحت في شرحك أخي الكريم:
كود:
// Send Status SMS 
void Send_Msg(char* Msg) 
{ 
       GM862_Send(atc3); 
      GM862_Send(phone_number); 
       while (rsp != GSM_Ready_To_Receive_Message) ; 
       GM862_Send_Ram(Msg); 
       UART1_Write(0x1A); 
       UART1_Write(0x0D); 
       while (rsp != GSM_OK) ; 
}
لاكنه عند الفحص يعطيني خطأ في السطر التالي
كود:
 GM862_Send(phone_number);
لذلك عدلته على النحو التالي :
كود:
 GM862_Send(phone_number[i]);
بعد الفحص كل شيء جيد لكن عند المحاكات و ارسال كلمة status? للجوال يتوقف البيك عن الارسال بعد الامر التالي "=AT+CGMS
ويبقى متوقف دون ان يكمل بقية الاوامر كتحديد رقم الهاتف و الرسالة...

وبعد تجربة المشروع الاصلي الذي ارفقته اخي حسن عند المحاكات بارسال كلمة status? للجوال يتوقف البيك عن الارسال بعد كلمة end اي دون ان يرسل الرسالة و يبقى متوقف

اعتذر اخي الكريم عن كثرة الاسئلة فأنا مبتدأ في هذا المجال و شكرا على تفهمك أخي بارك الله فيك
السلام عليكم
انا بخدمتك أخي فلا داعي لاعتذار انت أسئل وانا شيئ الذي اعرفه اجيبك به فورا
عفوا اخي انا قمت بمراجعه الكود والرساله الخطأ الي ظهرت لك امر طبيعي لماذا
لانك لو تراجع الكود ستجد هذه الرساله وهي من نوع الثابت
كود:
const char atc3[] = "AT+CMGS=\"123456789\"";
وعليه عند استخدام كود جديد لاستخدام اي رقم هاتف قمنا بتغير هذه مصفوفه الى التالي وهذه من نوع متغير
كود:
char atc3[] = "AT+CMGS=\"";
وعليه هنا اختلفت طبيعه الارسال
انظر
كود:
void GM862_Send(const char *s)
تلاحظ لون احمر تعني مصفوفه او متغير من نوع ثابت (( متغيرات مخزونه في روم))

كود:
void GM862_Send_Ram(char *s1)
اما هذه داله مهمتها ارسال متغير او مصفوفه مخزونه في رام
ولهذا عليك تصحيح الكود الى التالي
كود:
unsigned ComposeMessage(char* Message);
// Send Status SMS
void Send_Msg(char* Msg){
     GM862_Send_Ram(atc3);
     GM862_Send_Ram(phone_number);

  while (rsp != GSM_Ready_To_Receive_Message) ; // Wait for appropriate ready signal

  GM862_Send_Ram(Msg);               // Send message content
  UART1_Write(0x1A);                 // Send CTRL + Z as end character
  UART1_Write(0x0D);                 // Send CR
  while (rsp != GSM_OK) ;             // Wait OK as confirmation that the message was sent
}
تم تصحيح الشرح وستلاحظ التعديل بلون احمر صفحه 34 و 35 و 38
http://www.mediafire.com/view/nof6m2...0%20%20GSM.pdf


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 13-12-2013 الساعة 12:42 PM
اعلانات

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


اخي كريم بالنسبه لمحاكاه سأوافيك بفيديو يبين كيفيه محاكاه

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

buoyya
:: مهندس ::
تاريخ التسجيل: Apr 2007
المشاركات: 17
نشاط [ buoyya ]
قوة السمعة:
قديم 13-12-2013, 06:56 PM المشاركة 43   
افتراضي


اخي كريم بالنسبه لمحاكاه سأوافيك بفيديو يبين كيفيه محاكاه
الله يجازيك عنا خير الجزاء اخي الكريم
في انتظار الفيديو , اريد ان اشير اخي انه قد تمت تجربة المشروع الرئيسي حيث تم الارسال و استقبال الرسالة في هاتفي بنجاح وكانت النتيجة على البروتوس بهذا الشكل
كود:
AT
ATE0
AT+CMGF=1
AT+CMGF=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGS="0123456789"

INFO:
R1 - ON
R2 - OFF
R3 - OFF
R4 - ON
End
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1

لكن بعد التعديل الاخير من اجل التحكم باي رقم لتزال هناك مشكلة في قراءة الرقم وهذه هي النتيجة على البروتوس
كود:
AT
ATE0
AT+CMGF=1
AT+CMGF=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGS="

INFO:
R1 - ON
R2 - OFF
R3 - OFF
R4 -ÿ³
En4
بارك الله فيك اخي الكريم على حسن اهتمامك


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


الله يجازيك عنا خير الجزاء اخي الكريم
في انتظار الفيديو , اريد ان اشير اخي انه قد تمت تجربة المشروع الرئيسي حيث تم الارسال و استقبال الرسالة في هاتفي بنجاح وكانت النتيجة على البروتوس بهذا الشكل
كود:
AT
ATE0
AT+CMGF=1
AT+CMGF=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGS="0123456789"

INFO:
R1 - ON
R2 - OFF
R3 - OFF
R4 - ON
End
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1

لكن بعد التعديل الاخير من اجل التحكم باي رقم لتزال هناك مشكلة في قراءة الرقم وهذه هي النتيجة على البروتوس
كود:
AT
ATE0
AT+CMGF=1
AT+CMGF=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGD=1,4
AT+CMGR=1
AT+CMGS="

INFO:
R1 - ON
R2 - OFF
R3 - OFF
R4 -ÿ³
En4
بارك الله فيك اخي الكريم على حسن اهتمامك
السلام عليكم
نعم اخي ومشكله في ظهور اشياء غريبه في رساله هو في رام
عندما تحجز مصفوفه مثلا لرساله طولها 55 عنصر وكانت البيانات اكثر من ذلك ستظهر اشياء غريبه
وهناك مشكله في البك هو عدم ترتيب الذاكره وهاي مشكله اعاني منها كثيرا


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


السلام عليكم
نعم اخي ومشكله في ظهور اشياء غريبه في رساله هو في رام
عندما تحجز مصفوفه مثلا لرساله طولها 55 عنصر وكانت البيانات اكثر من ذلك ستظهر اشياء غريبه
وهناك مشكله في البك هو عدم ترتيب الذاكره وهاي مشكله اعاني منها كثيرا
السلام عليكم
تم حل مشكله الذاكره بأستخدام العائله 18f لكون هذه العائله اكثر تطورا من العائله 16f وسبب الرئيسي هو البنوك في رام غير مرتبه بعضها فوق بعض عكس العائله 18f

في برنامج المرفق استبدلت البك 16f628a ب البك 18f45k22 ولايوجد اي اختلاف في برمجه ماعدا استخدام الامر ansela=0 لغرض تحويل الى ديجيتل
كما يحتوي على فيديو يبين محاكاه
http://www.mediafire.com/download/91...2018f45k22.rar


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 20-12-2013, 08:27 AM المشاركة 46   
افتراضي


السلام عليكم
هذا نفس برنامج ولكن بأستخدام البك 16f1938
http://www.mediafire.com/download/bb...%2016f1938.rar

اختلاف الوحيد في البرمجه هو ضبط التردد عندما نستخدم مذبذب الداخلي


buoyya
:: مهندس ::
تاريخ التسجيل: Apr 2007
المشاركات: 17
نشاط [ buoyya ]
قوة السمعة:
قديم 21-12-2013, 03:29 AM المشاركة 47   
افتراضي


السلام عليكم
تم حل مشكله الذاكره بأستخدام العائله 18f لكون هذه العائله اكثر تطورا من العائله 16f وسبب الرئيسي هو البنوك في رام غير مرتبه بعضها فوق بعض عكس العائله 18f

في برنامج المرفق استبدلت البك 16f628a ب البك 18f45k22 ولايوجد اي اختلاف في برمجه ماعدا استخدام الامر ansela=0 لغرض تحويل الى ديجيتل
كما يحتوي على فيديو يبين محاكاه
http://www.mediafire.com/download/91...2018f45k22.rar
شكرا لك اخي حسن على مجهودك القيم بارك الله فيك
بالنسبة لمشكل الذاكرة اعتقد ان الحل في هذه المشاركة رقم 13 للأخ أحمد سمير في هذا الموضوع لكنني لم اجرب بعد,
http://www.qariya.com/vb/showthread.php?t=67499&page=2

بالنسبة للبرنامج الاخير الذي ارفقته اخي حسن كل شيئ تمام ما عدا ان البرنامج لايرسل الرسالة عند المحاكات عن طريق الجوال و يعطي error
و السبب هو انه يكتب الرقم بسطر جديد بعد امر AT+CMGS="
لاحظ
كود:
AT+CMGS="
+00000000000"  // استخدمت رقم جوالي الحقيقي عند المحاكات
INFO:
R1 - OFF
R2 - OFF
R3 - OFF
R4 - OFF

End/.
وهذا ايضا غير ممكن في برنامج Hyper Terminal
حاولت ايجاد حل لهذا المشكل لاكن بدون فائدة
مع تحياتي وشكرا..


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


شكرا لك اخي حسن على مجهودك القيم بارك الله فيك
بالنسبة لمشكل الذاكرة اعتقد ان الحل في هذه المشاركة رقم 13 للأخ أحمد سمير في هذا الموضوع لكنني لم اجرب بعد,
http://www.qariya.com/vb/showthread.php?t=67499&page=2

بالنسبة للبرنامج الاخير الذي ارفقته اخي حسن كل شيئ تمام ما عدا ان البرنامج لايرسل الرسالة عند المحاكات عن طريق الجوال و يعطي error
و السبب هو انه يكتب الرقم بسطر جديد بعد امر AT+CMGS="
لاحظ
كود:
AT+CMGS="
+00000000000"  // استخدمت رقم جوالي الحقيقي عند المحاكات
INFO:
R1 - OFF
R2 - OFF
R3 - OFF
R4 - OFF

End/.
وهذا ايضا غير ممكن في برنامج Hyper Terminal
حاولت ايجاد حل لهذا المشكل لاكن بدون فائدة
مع تحياتي وشكرا..
السلام عليكم
اخي كريم بالنسبه لما قاله احمد سمير فايد انا جربت ذلك ولكن محاولات بات بالفشل ولذا اضطريت اغير مايكرو باخر له تركيب داخلي يكون فيها ترتيب الصفحات في رام مرصوصه فوق بعضها البعض

بالنسبه لمشكلتك اولا شكرا على هذا ملاحظه
نعم في داله الارسال يوجد فعلا امر enter
يمكننا حل هذه مشكله
سنتخدم هذا كود جديد
كود:
void Send_Msg(char* Msg)
{
  char atc[25];

  atc[0] = 0;                        // clear atc string
  strcat(atc, atc3);                 // atc3 command for sending messages
  strcat(atc, phone_number);         // add phone number
  GM862_Send_Ram(atc);
  //GM862_Send_Ram(phone_number);

  while (rsp != GSM_Ready_To_Receive_Message) ; // Wait for appropriate ready signal

  GM862_Send_Ram(Msg);               // Send message content
  UART1_Write(0x1A);                 // Send CTRL + Z as end character
  UART1_Write(0x0D);                 // Send CR
  while (rsp != GSM_OK) ;             // Wait OK as confirmation that the message was sent
}



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