وقفه ی rx نباشه ممکنه که یک داده دریافت نشه. ولی با فعال بودن اون هر داده ای که برسه در بافر ذخیره خواهد شد مگر اینکه بافر هم پر بشه و شما داده رو دریافت نکنید
در این زمینه شک نکنید
وقفه ی rx نباشه ممکنه که یک داده دریافت نشه. ولی با فعال بودن اون هر داده ای که برسه در بافر ذخیره خواهد شد مگر اینکه بافر هم پر بشه و شما داده رو دریافت نکنید
در این زمینه شک نکنید
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
پس با توجه به حرف شما اینکه من نمیتونم بعد از وقفه خارجی که بعد اومدن sms فعال میشه بلافاصله +CMTI که ماژول میفرسته رو پیدا کنم اینه که از وقفه Rx استفاده نکردم تا این دستور ذخیره شده باشه تو بافر.خوب حالا نحوه استفاده از این وقفه Rx چجوریه؟
چون من با خود codevision که interrup rx رو فعال کردم یه سری کد خودش گذاشت تو برنامه. حالا من باید کاری بکنم وسط این کدای Rx interrupt یا همین کافیه؟ چون اینجور که من فهمیدم انگار داره واسه getchar تعریف میکنه که بریزه تو Rx_buffer اول.
البته من اینکارو کردم بازم بعد از وقفه برنامم که میره تو زیرروال نتونستم CMTI رو بخونم.
در کدویژن وقتی که وقفه ی rx فعال میشه، تابع getchar هم دوباره تعریف میشه. شما با تابع وقفه کار نداشته باشین و فقط از همون getchar استفاده کنید. تابع Getchar تا زمان رسیدن داده منتظر میمونه.
من خودم در توابع دستکاری کردم و تا حدی مشکلات رو برطرف کردم ولی زمان زیادی گرفت تا درست از کار در بیاد.
دیگه به منطق برنامه نویسی شما برمیگرده
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
من این کار رو کردم اما بازم نتونستم +CMTI رو بگیرم.
شما میتونید یه برنامه خیلی ساده بنویسید که بعد از اومدن sms و فعال شدن وقفه خارجی اگه کاراکتر 'C' رو دید رو LCD اعلام کنید که C خونده شد؟(منظورم همین C توی +CMTI که مازول میفرسته). برنامش فقط یه while تو زیرروال وقفه میخواد که هر کاراکتری که میاد رو چک کنه.
من هیچی دریافت نمیکنم حتی بعد از فعال کردن وقفه Rx . واقعا نمیفهمم گیر کار کجاست!
روشی که شما گفتین من امتحان نکردم و نمیتونم نظری بدم. ولی وقتی جواب نمیده حتما یه جا مشکل داره
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
میتونید راجع به اکو توضیح بدین؟ چی هست یه چه کار میاد؟من میدونم اکو رو میشه با ate0 یا ate1 خاموش یا روشن کرد ولی نمیدونم به چه کاری میاد و کجا باید ازش استفاده شه؟
اکو وقتی با میکرو کار میکنید باید خاموش باشه. اگه روشن باشه هر داده ای که بفرستین برگردونده میشه. یعنی بازتاب میکنه. از اسمش معلومه دیگه
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
سلام
منم نمی تونم ctmi رو دریافت کنم. یعنی ماژول بعد از دریافت sms هیچی برام ارسال نمی کنه.
سلام
دوستان ماژول من هنگام دریافت SMS هیچی رو نمی فرسته ( یعنی ctmi و یا ... ). اما برای بقیه موارد مثل زنگ و ... کار میکنه.
طبق pdf های راه اندازی sim900 برای sms در اینترنت، دقیق تنظیم کنید. بخاطر تنظیمات هست
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
اگه از وقفه sms و زنگ استفاده میکنی یعنی میخوای بعد از اومدن sms بیای cmti رو بخونی به مشکل من دچار شدی. من سه روز هر کار کردم نشد که نشد. cmti میاد ولی شما بعد وقفه که چک میکنی چیزی واسه خوندن نیست. اما برای زنگ چون RING رو ماژول تکرار میکنه از پیغام دوم به بعد میشه خوند RING اول هم مثل cmti نمیشه خوند.دلیلشم من آخر نفهمیدم مجبور شدم بیخیال وقفه شم و میکرو رو تو لوپ بینهایت بزارم تا همیشه دنبال cmti باشه!
سلام
من الان وقفه رو هم تست کردم. متوجه شدم زمان دریافت SMS هیچ وقفه ای تولید نمیشه اما زمانی که زنگ میزنی وقفه تولید میشه. چه شکلی میتونم وقفه SMS رو فعال کنم و همینطور چه شکلی می تونم deliver رو غیر فعال کنم؟
مشکل ctmi هم از بافر کردن بود که حل شد.
میشه توضیح بدین یعنی چی مشکل از بافر کردن بود؟
منظورتون از اینکه موقع دریافت sms وقفه تولید نمیشه چیه؟ RI ماژول موقع زنگ یا sms ولتاژش صفر میشه دیگه یعنی شما برنامتون نمیره تو وقفه یا ماژول موقع اومدن sms ولتاژ RI صفر نمیشه؟ بعد هم شما که میگید میتونید cmti رو بخونید بعد وقفه و مشکل از بافر کزدن بود که حل شد!!
از وقفه usart استفاده کنید تا همه چی بافر شه.میشه توضیح بدین یعنی چی مشکل از بافر کردن بود؟
ماژول من موقع دریافت SMS پایه RI اون صفر نمیشه. فقط موقع زنگ میشه. فکر کنم باید فریم ویرش رو به روز کنم. چون اصلا بهش دست نزدم. خودش خیلی راحت شبکه رو شناخت و کار کرد. یعنی زنگ زد و SMS فرستاد فقط الان گیر گرفتن SMS هستم. هر کاری میکنم نمی تونم SMS رو بخونم.منظورتون از اینکه موقع دریافت sms وقفه تولید نمیشه چیه؟ RI ماژول موقع زنگ یا sms ولتاژش صفر میشه دیگه یعنی شما برنامتون نمیره تو وقفه یا ماژول موقع اومدن sms ولتاژ RI صفر نمیشه؟ بعد هم شما که میگید میتونید cmti رو بخونید بعد وقفه و مشکل از بافر کزدن بود که حل شد!!
سلام...
با اومدن sms برای ماژول، پایه ri برای مدت خیلی کوتاهی صفر میشه. این زمان خیلی کوتاهه و شاید مولتی متر نتونه تشخیص بده که صفر شده! شما پایه ri رو مستقیم وصل کن به پایه وقفه میکرو. اگر بازم با اومدن اسمس وقفه اتفاق نیفتاد، ماژول رو با دستور at&f به تنظیمات کارخونه برگردون سپس دستور at+cmgf=1 رو به ماژول بده و سپس دستور at&w رو بده تا تنظیمات ذخیره بشه.
سلام..
میشه با اس ام اس یا هر چیزه دیگه ای یکی از پایه های sim900 رو یک یا صفر کرد..بدون ارتباط با میکرو....
تا جایی که من میدونم باید به شرکت سازنده ی Sim900 سفارش بدین تا برنامه رو براتون بنویسن. وگرنه همینطوری نمیشه
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
برای راه اندازی قسمت های خاص SIM900 برنامه ای ارائه شده...مثلآ برا کار با همون GPIO ها یا ADC و خلاصه اون قسمت هایی که همینطوری نمیشه باهاشون کار کرد...
برنامشم اینجوریه که میشینی با زبان C براش برنامه مینویسی. البته تو محیط کار مخصوص این ماژول...
اسم برنامه : SIM900DevIDE
خلاصه چیز جالبیه..میشه با این روش میکرو رو از مدار حذف کرد...ولی باید بشینی چیزهای مخصوص این ماژول رو یاد بگیری...
اينم لينك دانلود:
http://media.micel.ee/simcom/SIM900D...DE%20V1.06.exe
برای روشن و خاموش کردن ماژول با میکرو باید چی کار کرد؟ من میدونم پایه های یک و دو ماژول رو چند لحظه باید بهم وصل کرد ولی با میکرو چطور؟ نمیدونم زمین کردن دو پایه یا متصل کردن به Vcc کار درستیه یا نه؟