سلام
sim900 رو راه اندازی کردم .
برای rx یه اینتراپت درست کردم که کاراکترایی که sim 900 میده رو میگیره تو یه ارایه میریزه بعد روشون تحلیل انجام میده و مانیتور میکنه
2 تا مشکل دارم
1- اول با حلقه for اومدم بگیرم . میبینم اونجا باید عدد تعیین کنم که عدد مشخص نیست
ممکنه ok بده یا error یا callerid یا sms باشه و تا وقتی عدد پر نشه جواب نمیده هر دفه کاراکتر میخواد :
و از for خارج نمیشه و تو Int میمونه تا مثلا اگه for 50 باشه 50 تا کاراکتر رو بگیره
2-حتی با این روشم یه برنامه C# نوشتم که متن رو کامل میفرسته . یعنی یه متنی رو تایپ میکنم بعد دکمه رو که میزنم همرو پست هم میفرسته به sim900 خوب مبفرستاد اون میگرفت اما به mega 8 که میدم کاراکترا رو دیتا لاست میده و ؟ میندازه
چه جوری میتونم یه رسته رو بگیرم ؟ بدون اینکه تعداد کاراکتراش از قبل تعریف شده باشه (فقط ماکزیمم رو تعریف کنم) و سرعت بالا که لاست نده و اینکه میشه روشون timeout گذاشت که موازی با while باشه ؟ کاراکتر نیمذ بعد چند ثانیه خودش بیخیال شه
sim900 رو راه اندازی کردم .
برای rx یه اینتراپت درست کردم که کاراکترایی که sim 900 میده رو میگیره تو یه ارایه میریزه بعد روشون تحلیل انجام میده و مانیتور میکنه
2 تا مشکل دارم
1- اول با حلقه for اومدم بگیرم . میبینم اونجا باید عدد تعیین کنم که عدد مشخص نیست
ممکنه ok بده یا error یا callerid یا sms باشه و تا وقتی عدد پر نشه جواب نمیده هر دفه کاراکتر میخواد :
کد:
char getchr(void) { while(!((UCSRA&0x80)==0x80)); return UDR; }
2-حتی با این روشم یه برنامه C# نوشتم که متن رو کامل میفرسته . یعنی یه متنی رو تایپ میکنم بعد دکمه رو که میزنم همرو پست هم میفرسته به sim900 خوب مبفرستاد اون میگرفت اما به mega 8 که میدم کاراکترا رو دیتا لاست میده و ؟ میندازه
چه جوری میتونم یه رسته رو بگیرم ؟ بدون اینکه تعداد کاراکتراش از قبل تعریف شده باشه (فقط ماکزیمم رو تعریف کنم) و سرعت بالا که لاست نده و اینکه میشه روشون timeout گذاشت که موازی با while باشه ؟ کاراکتر نیمذ بعد چند ثانیه خودش بیخیال شه
دیدگاه