سلام دوستان.
برای اینکه وقتتون رو زیاد نگیرم، خلاصه سوالم رو همین اول مینویسم و توضیحات تکمیلی رو بعد از اون اضافه میکنم:
من برای اینکه از max 232 استفاده نکنم، ماژول SIM900 رو به میکرو(atmega 8) وصل میکنم و اطلاعات رو از طریق اون میگیرم. این کار چند مشکل داره که عرض میکنم:
1- ماژول SIM900 هنگام روشن شدن، شروع میکنه به فرستادن چند خط اطلاعات. من برای اینکه تمام اطلاعات رو از SIM900 به کامپیوتر منتقل کنم، از کد زیر استفاده کردم:
ولی با استفاده از این روش، اطلاعات به درستی منتقل نمیشن. برداشت خود من این بود که سرعت ارسال اطلاعات از SIM900 بیشتر از سرعت پردازش میکرو بود(از کریستال خارجی 11.0592 Mhz استفاده میکنم). برای همین baud rate مربوط به میکرو رو بالا بردم و baud rate ماژول رو روی حداقل(1200) ست کردم. باز هم مشکل حل نشد.برای حل این مشکل،راه حل زیر رو استفاده کردم و موقتا درست شد! ولی ...
2- بعضی از دستوراتی که به SIM900 ارسال میشن، 3 خط پاسخ دارن. بنده مشکل رو اینجوری حل کردم:
این روش اول درست کار میکرد تا اینکه به دستوراتی بر خوردم که پاسخشون از طرف SIM900 بیش از 3 خط بود. اگر تعداد input ها رو بیشتر کنم، برای دستوراتی که 3 خط پاسخ دارن کارامد نخواهد بود و تو input چهارم میکرو هنگ میکنه! یعنی منتظر میمونه که input صورت بگیره. در وقع، من دنبال یه جور اعمال محدودیت زمانی برای input در بسکام هستم.
در ضمن اگه برای هرکدوم از مشکلات بالا راه حلی دارید لطفا بفرمایید.
پیشاپیش ممنونم.
برای اینکه وقتتون رو زیاد نگیرم، خلاصه سوالم رو همین اول مینویسم و توضیحات تکمیلی رو بعد از اون اضافه میکنم:
بنده به دنبال یه جور اعمال محدودیت زمانی برای input در بسکام هستم.
1- ماژول SIM900 هنگام روشن شدن، شروع میکنه به فرستادن چند خط اطلاعات. من برای اینکه تمام اطلاعات رو از SIM900 به کامپیوتر منتقل کنم، از کد زیر استفاده کردم:
کد:
do Input #1 , Var Print #3 , Var loop
2- بعضی از دستوراتی که به SIM900 ارسال میشن، 3 خط پاسخ دارن. بنده مشکل رو اینجوری حل کردم:
کد:
Input #4 , Aval Input #4 , Dovom Input #4 , Sevom
در ضمن اگه برای هرکدوم از مشکلات بالا راه حلی دارید لطفا بفرمایید.
پیشاپیش ممنونم.
دیدگاه