با سلام خدمت اساتید محترم
مشکل من در مورد تایمر است.محاسباتش رو بلدم ولی نمی دونم چرا برنامه returnنمیکنه. تو شبیه ساز بیسکام کنار خط برنامه یه فلش هست برنامه تا آخر میره همونجا میمونه!"return"هم گذاشتم.برنامه های مختلف را هم امتحان کردم ولی تا حالا موفق نشدم یه زمان تاخیر با تایمر بسازم.لطفا کمکم کنید.
سوال بعدیم در مورد اتصال خط تلفن به میکرو هست .آشکارساز زنگ نمیخوام.فقط قطع خط تلفن راهشدار بده.در حالت عادی میشه ولتاژ خط را کم کرد یابا اپتوکوپلر فیلترش کرد ولی اگه تلفن زنگ بخوره،بهتر از من میدونید،ولتاژخیلی بالاتر میره.
پیشاپیش ممنون از جوابتون
سلام دوسته من.
1.منم با تایمر مشکل داشتم اما مشکلم رفع شد شما اگه لطف کنی برنامه ای که نوشتی رو بزاری تا ببینیم چی نوشتی بهتر میشه به نتیجه رسید.
2.در مورد سوال دومتونم باید بگم که نمیدونم.
سلام برنامه خاصی نیست کلابا هر برنامه ای مشکل دارم
اگه تاخیر میخوای میتونی از تابع delay استفاده کنی ;(delay_ms(100 تاخیر 100میلی ثانیه تولید میکنه
(۱۷-مرداد-۱۳۹۱, ۱۶:۵۵:۰۹)alfaalarm نوشته است: [ -> ]سلام برنامه خاصی نیست کلابا هر برنامه ای مشکل دارم
خب اینو بگو میخوای با کدوم mode تایمر کانتر کار کنی؟ تامیر یا کانتر یا pwm؟
دوست عزیز delay فرمان ساده ای است در ضمن در تاخیرهای زیاد میکرو را معطل میکنه.تاخیر با تایمر را میگم
از اساتید کسی هست کمکم کنه.
(۱۸-مرداد-۱۳۹۱, ۱۹:۴۲:۱۵)alfaalarm نوشته است: [ -> ]دوست عزیز delay فرمان ساده ای است در ضمن در تاخیرهای زیاد میکرو را معطل میکنه.تاخیر با تایمر را میگم
از اساتید کسی هست کمکم کنه.
خب فک کنم که منظوزتون رو متوجه شدم.شما میخواین با یه تایمر یک زمان مشخصی رو تاخیر بندازی.
میشه با waitms یا waitus هم اینکار رو انجام داد.
ولی با تایمر هم میشه.
خب اول باید تایمر رو پیکر بندی کنیم.به این صورت:
کد:
Config Timer1 = Timer , Prescale =1
Prescale رو میتونی 1 , 8, 64, 256 , 1024 بزاری.هرچی این عدد کمتر باشه و فرکانس میکرو بیشتر باشه دقته تایمر بیشتره.
بعده اینکه تایمر کانتر رو در mode تایمر پیکر بندی کردی باید چند وقفه رو هم فعال کنی.
کد:
Enable Interrupts
Enable Timer1
بعد اینکه وقفه هارو فعال کردی با دستور
تایمر شروعبه شموردن میکنه.
و با دستور
میتونی اونو استپ کنی.
با دستور
میتونی اونو رو ای سی دی نمایش بدی.
وبا دستور
میتونی تایمر برابر اون عدد قرار بدی.
موفق باشی....
دوست عزیز اینهارا خودم میدونم
بعداز اینکه تایمر سرریزشد به برچسبی که مشخص شده پرش میکندو با دستور returnبرگشت میکند واین حالت ادامه پیدا میکند تا به دستوری که ما میخوایم برسه واون کاررو انجام بده. درست؟مثلا یکی به aاضافه کن.اگرaمثلا 5 شد پورت a.1را ست کن.دفعه اول که تایمر سرریز میشه وبه زیربرنامه پرش میکند aباید بشه 2 وبعد با returnبرمیگرده و...
مشکل اینجاست که برنامه returnنمیکنه.یعنی تاآخر میره و همونجا میمونه.!!!
(۱۸-مرداد-۱۳۹۱, ۲۳:۰۲:۲۹)alfaalarm نوشته است: [ -> ]دوست عزیز اینهارا خودم میدونم
بعداز اینکه تایمر سرریزشد به برچسبی که مشخص شده پرش میکندو با دستور returnبرگشت میکند واین حالت ادامه پیدا میکند تا به دستوری که ما میخوایم برسه واون کاررو انجام بده. درست؟مثلا یکی به aاضافه کن.اگرaمثلا 5 شد پورت a.1را ست کن.دفعه اول که تایمر سرریز میشه وبه زیربرنامه پرش میکند aباید بشه 2 وبعد با returnبرمیگرده و...
مشکل اینجاست که برنامه returnنمیکنه.یعنی تاآخر میره و همونجا میمونه.!!!
دوسته من به احتمال 100000% در برنامه نویسیش اشتباهی رو مرتکب شدی.
اگه میشه برنامه رو کامل واسمون قرار بده تا دوستان صاحب نظر اونو نیگاه کنند و راهنماییت کنند.
آخه برنامه های مختلفی را امتحان کردم حتی از برنامه های سایتهای مختلف هم استفاده کردم ولی نشد.
یه برنامه تست شده ساده اگه هست بزارید تاروی اون امتحان کنم.
سوال بعدیم در مورد اتصال خط تلفن به میکرو هست .آشکارساز زنگ نمیخوام.فقط قطع خط تلفن راهشدار بده.در حالت عادی میشه ولتاژ خط را کم کرد یابا اپتوکوپلر فیلترش کرد ولی اگه تلفن زنگ بخوره،بهتر از من میدونید،ولتاژخیلی بالاتر میره.
مشكلي ندارهه ، همون برنامه اي كه الان داريد باهاش كار مي كنيد رو بذاريد ( البته اگر مي خوايد مشكلتون حل بشه ، وگرنه كه هيچ ... ) همون قسمت تايمرش هم كفايت مي كنه.
مورد ديگه اينكه سيمولاتور بسكام فكر نكنم ارزش كار كردن داشته باشه ، شما برنامه رو بنويسيد كامپايل كنيد ، فايل خروجي رو ببريد در پروتوس چك كنيد.
بهتر از همشون هم تست زدن به صورت عملي هست.
شما حتما عملي يا در پروتوس چك كنيد ، اينطوري از صحت برنامه اتون اطمينان حاصل كنيد.
---------------------------------------------------
اول يكسو سازي نيم موج اش مي توني كني و بعد خازن سري براي اتصال باز كردن ولتاژ DC ، بعد (موقع زنگ خوردن) با خازن صافي ( فيلتر پايين گذر ) سطح ولتاژ DC درست كني و بعد با ديود زنر برش بدي و بعد به اپتو كوپلر بدي و از اون سرش به ميكرو. ( اين براي آشكارسازي )
وقتي تلفن قطع مي شه ، اون بار بين دو خط قطع مي شه و در واقع اتصال باز هست ، پس جرياني كه تامين كنندش اون 2 خط هستن ، 0 مي شه ، يعني با يه آمپر متر احتمالا كارت راه مي يفته. ( فقط در حد ايده هست ، ممكنه عملي نباشه ، بايد تست بشه. )
البته بسته به اينكه دستگاه چه كارايي مي كنه و از چه چيزايي توش استفاده شده ممكنه بشه كاراي بهتري كرد.
موفق باشيد.