سلام دوست عزیزنقل قول:
نوشته اصلی توسط javad naderi [Dear Guest/Member you can't see link before replyclick here to register]
مقدار یک ثابته فقط چند ثانیه صفر میشه بعد یک.
مثل کلید ریست میکرو.
نمایش نسخه قابل چاپ
سلام دوست عزیزنقل قول:
نوشته اصلی توسط javad naderi [Dear Guest/Member you can't see link before replyclick here to register]
مقدار یک ثابته فقط چند ثانیه صفر میشه بعد یک.
مثل کلید ریست میکرو.
انجام دادم فرقی نکر مثل همون حالت دستی شد
نکنه مشکل از برد ماژوله؟
اخه چیز مهمی نداره که جواب نده.
مدار تغذیه رو شما چی بستی خروجیش چنده؟
lM 2576 با اداپتور 4/5 امپری لپ تاپ 3 امپر نمیتونه بده؟
شما lm رو به چی وصل کردی یعنی تغذیه اصلیت چی بوده؟
مهندس یه خازن 1000میکرو خودت بذار تو ورودیت مشکلت حل میشه..نقل قول:
نوشته اصلی توسط javad naderi [Dear Guest/Member you can't see link before replyclick here to register]
ولی ولتاژ 4.7 خیلی زیاده هاااا...در حد 4ولت خوبه...
سلام
من یه شماتیکی دیدم که آنتن رو بوسیله مدار زیر به ماژول وصل کرده بود! اما داخل دیتاشیت چیزی نگفته. کسی میدونه این مدار بین آنتن و ماژول بخاطر چیه و کارش چیه؟
سلام دوست عزیزنقل قول:
دو تا مدار Rc به عنوان نویز گیر چیز خاصی نیست .
به نظر شما برای اتصال آنتن به ماژول بهتره از این مدار استفاده کنیم یا نه؟ در افزایش قدرت و کیفیت آنتن دهی ماژول تاثیر داره؟نقل قول:
سلام دوست عزیزنقل قول:
بستگی به مکانت داره ولی در کل میتونی بزاری آنچنان تاثیری نداره.
بیشتر برای مکان های هست که نویز پذیری بالایی داره و کاهش نویز براشون مهم باشه.
سلام دوستان
من این برنامه را (صفحه اول) یکم تغییرش دادم که مثلا اگر 1111 بود این کار را انجام بده 2222و3333و4444و5555و6666و0000 هر کدوم یک کاری انجام میدن
دستورات انجام میشه ولی بعد از یه مدتی یا چندتا دستور را که انجام داد دیگه هیچ کدوم از فرمان ها را انجام نمیده
مشکل از کجاست ؟ میکرو هنگ میکنه ؟
چیکار باید کرد ؟
سلام دوست عزیزنقل قول:
فکر کنم مشکل از پر شدن حافظه سیم کار تتون باشه. باید تا مثلا به پنج تا رسید پاکش کنید که اینطور به مشکل بر نخورید.
تو برنامه یه قسمتی هست به 5 که برسه پاک میکنه
شاید هم از آرایه هات باشه بعد از هر بار استفاده و ریختن اطلاعات در آن . در صورت نیاز دو باره به نوشتن در همان آرایه اول پاکش کن و بعد دوباره داخلش بتویس شاید از این باشه.نقل قول:
نقل قول:
ممکنه یکم واضح تر بگید
کدوم ارایه ؟
ممنون:wink:
هر آرایه ای که در برنامه استفاده میکنید.نقل قول:
اصلا میکرو شما در کجا هنگ میکن؟
در زمان گرفتن اسمس؟
در جواب دادن به اسمس؟
وقتی که به یک آرایه بیش از اندازش داده میریزین داده هایی که در حافظه بعد از اون قرار گرفتن نوشته میشن. پس در زبان c باید خودمون به اندازه ی آرایه توجه کنیم.
اما به نظر من مشکل از چیز دیگه ای هست. این برنامه یک پروژه ی دانشجویی بوده و نحوه ی کار با sim900 رو میگه و هیچ تضمینی برای کارکرد صحیح اون نیست. کافیه یک دستور اشتباه بهش بدین یا ناخواسته بهش برسه و هنگ کنه.
هنر یک برنامه ی صنعتی اینه که با اشتباهات به کار خودش ادامه بده و مقاوم باشه و اگه درامدی از این پروژه داشتم بخاطر همین بوده
من تونستم با میکرو ماژول sms بفرستم یا تونستم sms رو از یک محل مشخص روی LCD با فرمت دلخواهم نمایش بدم. اما یه مشکل عجیبی که دارم اینه که بعد از اومدن sms و فعال شدن وقفه نمیتونم اون خطی که مکان اس ام جدید رو میده بخونم تا ازش محل ذخیره sms جدید رو در بیارم.
همون طور که میدنید بعد از اومدن اس ام اس جدید این فرمانو میفرسته ماژول:
که یعنی sms تو مکان 5 هست. حالا من برنامم بعد از اومدن اس ام اس جدید یا زنگ میره تو وقفه ولی اونجا با دستور getchar() نمیتونم هیچ کدوم از این کاراکترها رو بخونم (در واقع هیچ چیزی نیست که خونده بشه). اما جالب اینجاست که میتونم بعد از زنگ زدن که ماژول هر یک ثانیه RING رو نشون میده این RING رو با getchar() بخونم یعنی به نظرم دلیل اینکه میتونم RING رو بخونم اینه که داره تکرار میشه هی اما با اومدن sms جدید +CMTI= "SM",5 فقط یکبار فرستاده میشه و من نمیتونم بخونمش. همین RING هم در واقع از تکرار دوم به بعد خونده میشه و اولیش خونده نمیشه.کد:+CMTI= "SM",5
کسی میدونه مشکل از چیه؟ اصلا برای پیدا کردن محل sms جدید از همین +CMTI= "SM",5 که بعد اومدن sms ماژول میفرسته باید استفاده کرد؟ وقعا بدجوری گیر کردم علت همچین مشکل مسخره ای رو نمیفهمم.
سلام دوست عزیزنقل قول:
آیا ماژول را روی txet تنظیم کردید اگر نکنید همین اتفاق ها می افتد.
ماژول دو نوع sms را دریافت و ارسال میکند که عبارتند ازpdu . Text که شما باید روی تکس تنظیم کنید و خارجی هم اسمس بدید
خوب نظرتون را میگفتید !نقل قول:
عزیزم معنی انجمن(فروم) اینه که همه بهم کمک کنیم تا مشکلاتمون بر طرف بشه نه این که اطلاعاتمون را به رخ هم بکشیم
موفق باشید.
بله رو تکسته. گفتم که من تو خوندن sms و دریافتش هیچ مشکلی ندارم. ببینید مشکل من اونجاست که وقتی sms جدید میاد و اون خط +CMTI که توش محل sms جدید هست میاد رو نمیتونم بخونم! ولی اگه زنگ بخوره گوشی پیغام RING رو میتونم بخونم علتش هم اینه که RING رو ماژول تکرار میکنه هی! و در واقع من برنامم از دومین تکرار RING میتونه بخونه!نقل قول:
یجورایی برای دلیلش حدسی که میزنم اینه که ما مثلا برای خوندن sms ابتدا خودمون مثلا دستور AT+CMGR=X رو میفرستیم و بعد جوابش رو میخونیم با getchar ولی اینجا ماژول بدون گرفتن هیچ دستوری داره پیغامی رو میفرسته! یه جورایی انگار حتما باید یه Enter یا LF اول بفرسته که ما بتونیم با getchar از تو ورودی بخونیمش وگرنه چیزی تو ورودی نیست! موقع زنگ خوردن هم همونطور که میدونید ماژول اینو میفرسته
RING
RING
RING
درواقع انگار بعد هر RING یک کاراکتر Enter فرستاده میشه واسه همین من میتونم از دومین RING به بعد رو بخونم. البته این یه حدسه.
سوال دیگه شما هم واسه پیا کردن مکان sms جدید از همین خط +CMTI= "SM",X استفاده میکنید؟
================
الان که تست کردم میتونم با یه لوپ معمولی منتظر شم تا CMTI رو پیدا کنم ولی همون لوپ رو اگه بعد وقفه sms بکار ببرم که بیاد بعد از sms اومدن اینو بخونه نمیتونم بخونمش. در واقع انگار بافر ورودی خالی شده بعد از وقفه و چیزی برای خوندن نیست. واقعا گیج شدم!!
سلام
شما از برنامهی خواندن sms داخل پی دی اف صفحه اول استفاده کنید حتما جواب میده.
تو اون برنامه از وقفه خارجی استفاده نشده! به نظرم این که میکرو دائما در حال چک کردن پیغام های ورودی باشه کار درستی نیست.... من میخوام هروقت sms جدید اومد +CMNTI رو بخونم نه اینکه میکرو دائما در حال چک کردنش باشه وگرنه این طوری خیلی سادست.نقل قول:
تو اون برنامه از وقفه Rx برای چی استفاده شده؟ اصلا کار وقفه Rx چیه که اونجا به کار رفته؟