با سلام خدمت اساتید محترم .من میخوام دو پایه رو بصورت مداوم چک کنم مثلا با کانتر یا مثلا روش افزایش و کاهش مقدار متغیرر(incr,decr) یعنی مثلا اگر پایه اول 10 بار صفر میشه این مقدار توی یک متغییر ریخته بشه و پایه دیگر هم همینطور چک بشه و اگر تعداد صفر شدن این دو پایه برابر شد حالا یک کاری انجام بده. فقط میخوام این کار به صورت مداوم انجام بشه .ممنون میشم در برنامه نویسیش با بسکام کمکم کنید .
اطلاعیه
Collapse
No announcement yet.
چک کردن دو پایه و مقایسه با هم بطور همزمان
Collapse
X
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
مسلما بهترین کار همون کانتره :
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer0 = Counter , Edge = Rising ' 256
Config Timer1 = Counter , Edge = Rising '65536
Do
if timer1 = timer0 then
برنامه ی شما
end if
loop
فقط توجه کنید که تایمر 0 تا 256 بیشتر نمیشمره ... اگه بیشتر لازم داریم با برنامه باید ok کنین ... :agree:
زاویه ی نگاهتو عوض کن . . .
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط shadkanluمسلما بهترین کار همون کانتره :
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer0 = Counter , Edge = Rising ' 256
Config Timer1 = Counter , Edge = Rising '65536
Do
if timer1 = timer0 then
برنامه ی شما
end if
loop
فقط توجه کنید که تایمر 0 تا 256 بیشتر نمیشمره ... اگه بیشتر لازم داریم با برنامه باید ok کنین ... :agree:
هستش که در این پست کاملا توضیح دادم : http://www.eca.ir/forum2/index.php?topic=65882.0 که ممنون میشم اونجا هم اگر لازم میدونید نظر بدید
فقط اگر ممکنه دستور اینکه چطوری صفر کردن دو پایه رو به این دو تایمر ارتباط بدم رو هم بگید . یک سوال دیگه اینکه این rising که نوشتید معنیش اینه اگر پایه مورد نظرم یک شد کانتر میشموره؟ یعنی معنی حساس به لبه بالا رونده این میشه؟ ممنوناگر دین نداری حداقل آزاده باش <امام حسین (ع)>
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط parham144با تشکر از شما .راستش شنیدم تایمر ممکنه هنگ کنه منم کارم طوری هست باید 24 ساعته مدار فعال باشه. مورد استفاده من هم برای هوشمند سازی پارکینگ
نوشته اصلی توسط parham144یک سوال دیگه اینکه این rising که نوشتید معنیش اینه اگر پایه مورد نظرم یک شد کانتر میشموره؟ یعنی معنی حساس به لبه بالا رونده این میشه؟ ممنون?Why not
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط parham144با تشکر از شما .راستش شنیدم تایمر ممکنه هنگ کنه منم کارم طوری هست باید 24 ساعته مدار فعال باشه. مورد استفاده من هم برای هوشمند سازی پارکینگ
هستش که در این پست کاملا توضیح دادم : http://www.eca.ir/forum2/index.php?topic=65882.0 که ممنون میشم اونجا هم اگر لازم میدونید نظر بدید
فقط اگر ممکنه دستور اینکه چطوری صفر کردن دو پایه رو به این دو تایمر ارتباط بدم رو هم بگید . یک سوال دیگه اینکه این rising که نوشتید معنیش اینه اگر پایه مورد نظرم یک شد کانتر میشموره؟ یعنی معنی حساس به لبه بالا رونده این میشه؟ ممنون
watchdog در واقع یک نوع ریست داخلی هستش و مربوط به تایمر کانترها هم نیست . کلیه ...
در مورد ارتباطم که فقط نیاز پایه های t0 و t1 میکرو پالسو اعمال کنی و اگر میخوای به low حساس باشه باید به جای rising از falling استفاده کنی ...زاویه ی نگاهتو عوض کن . . .
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط shadkanluدقیقا همونطور که مهندس گفتن watch dog گزینه ی خوبیه ولی دیتات هم ریست میشه و برای نگه داری از دیتا هات باید در eeprom ذخیره کنی ...
watchdog در واقع یک نوع ریست داخلی هستش و مربوط به تایمر کانترها هم نیست . کلیه ...
در مورد ارتباطم که فقط نیاز پایه های t0 و t1 میکرو پالسو اعمال کنی و اگر میخوای به low حساس باشه باید به جای rising از falling استفاده کنی ...
در مورد تایمر هم پس پایه هایی که میخوام چک کنم رو باید همون پایه های t0 و t1 میکرو باشن دیگه؟ یعنی نمیشه مثلا واسه چک کردن یک پایه دیگه کانتر رو فعال کرد؟
و مثلا اگر بخوایم مقدار کانتر رو که مثلا 10 بار صفر شده داخل یک متغییر بریزیم دستورش این میشه : timer0= a1 ؟ اینجوری میتونیم مقدار 2 متغیر مثلا a1 و a2 که هر کدوم نگه دارنده مقدار یک تایمر هستند رو با هم مقایسه کرد ؟ :read: ممنوناگر دین نداری حداقل آزاده باش <امام حسین (ع)>
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط parham144ممنون .فقط کجای برنامه از watch dog استفاده کنم ؟ در صورت استفاده باید بین دستورات تایمر کانتر باشه یا اصلا اونو فراموش کنم ؟ چه نیازی به ریست کردن هست؟ هنگ کردن رو کاهش میده ؟ میشه یک مثال ساده بزنید همراه با همین ریختن توی eeprom .خیلی ممنون
فقط فرض کن که میخوای هر 10 ثانیه 10 ثانیه اینکارو بکنی.
دستور writeeeprom A (متغیر A) رو که توش میتونه اطلاعات کانترت باشه رو قبله watchdog بذاری تا قبل از ریست شدن تو eepromت باشه. بعدشم که تو همون شروع برنامه بنویس readeeprom A (متغیر A).
نوشته اصلی توسط parham144در مورد تایمر هم پس پایه هایی که میخوام چک کنم رو باید همون پایه های t0 و t1 میکرو باشن دیگه؟ یعنی نمیشه مثلا واسه چک کردن یک پایه دیگه کانتر رو فعال کرد؟
نوشته اصلی توسط parham144و مثلا اگر بخوایم مقدار کانتر رو که مثلا 10 بار صفر شده داخل یک متغییر بریزیم دستورش این میشه : timer0= a1 ؟ اینجوری میتونیم مقدار 2 متغیر مثلا a1 و a2 که هر کدوم نگه دارنده مقدار یک تایمر هستند رو با هم مقایسه کرد ؟?Why not
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط QUARKهر جایی.
فقط فرض کن که میخوای هر 10 ثانیه 10 ثانیه اینکارو بکنی.
دستور writeeeprom A (متغیر A) رو که توش میتونه اطلاعات کانترت باشه رو قبله watchdog بذاری تا قبل از ریست شدن تو eepromت باشه. بعدشم که تو همون شروع برنامه بنویس readeeprom A (متغیر A).
نه
چرا که نه.اگر دین نداری حداقل آزاده باش <امام حسین (ع)>
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
من گفتم هر وقتی که دلت خواست هر چی رنج متعادل تری داشته باشی به نفعه خودته.
این ده ثاینه رو میتونی اینجوری واسه خودت تعریف کنی که اگه مثلاً کانتر 10 تا یا 20 تا یا 100 تا شمورد یه بار تایمر واچ داگ رو فعال کن. تایمر واچ داگ هم تا 2048 و در بعضی از میکرو ها 4096 و 8192 میلی ثانیه بیشتر نمیشمورن . یعنی هرگاه شما استارت واچ داگ رو زدید هر زمانی رو که براش انتخاب کرده باشید به همون اندازه میشموره و بعد ریست میشه.?Why not
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط QUARKمن گفتم هر وقتی که دلت خواست هر چی رنج متعادل تری داشته باشی به نفعه خودته.
این ده ثاینه رو میتونی اینجوری واسه خودت تعریف کنی که اگه مثلاً کانتر 10 تا یا 20 تا یا 100 تا شمورد یه بار تایمر واچ داگ رو فعال کن. تایمر واچ داگ هم تا 2048 و در بعضی از میکرو ها 4096 و 8192 میلی ثانیه بیشتر نمیشمورن . یعنی هرگاه شما استارت واچ داگ رو زدید هر زمانی رو که براش انتخاب کرده باشید به همون اندازه میشموره و بعد ریست میشه.یعنی میگید بهتره برای اجرای روان و هنگ نکردن مثلا بعد هر 20 ار شمردن یک بار مقدار متغییرمون رو توی eeprom بریزم و واچ داگ رو اجرا کنیم و دوباره به برنامه برگشه و eeprom رو بخونیم و ادامه ماجرا...
فقط به نظر شما برای اینکه هنگ کردن کمتر باشه از (incr و decr) یعنی افزایش و کاهش متغییر استفاده کنم یا کانتر ؟ ممنوناگر دین نداری حداقل آزاده باش <امام حسین (ع)>
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط parham144خیلی ممنون فکر کنم منظورتون رو فهمیدمیعنی میگید بهتره برای اجرای روان و هنگ نکردن مثلا بعد هر 20 ار شمردن یک بار مقدار متغییرمون رو توی eeprom بریزم و واچ داگ رو اجرا کنیم و دوباره به برنامه برگشه و eeprom رو بخونیم و ادامه ماجرا...
نوشته اصلی توسط parham144فقط به نظر شما برای اینکه هنگ کردن کمتر باشه از (incr و decr) یعنی افزایش و کاهش متغییر استفاده کنم یا کانتر ؟ ممنون
هنگ کردن چیزه طبیعیه باید باهاش مبارزه کرد نه اینکه ازش فرار کرد.
اگه کارتون با کانتر حله پس از کانتر استفاده کنید .
نیست من از اول نوشته هاتون رو ندیدم به خاطر همین اینو میگم.?Why not
دیدگاه
-
پاسخ : چک کردن دو پایه و مقایسه با هم بطور همزمان
نوشته اصلی توسط QUARKبله کاملاً درست گفتید.
شما دارید چیکار میکنید؟ بسته به نوع کارتون دستوراتتون رو انتخاب کنید.
هنگ کردن چیزه طبیعیه باید باهاش مبارزه کرد نه اینکه ازش فرار کرد.
اگه کارتون با کانتر حله پس از کانتر استفاده کنید .
نیست من از اول نوشته هاتون رو ندیدم به خاطر همین اینو میگم.
http://www.eca.ir/forum2/index.php?topic=65882.0اگر دین نداری حداقل آزاده باش <امام حسین (ع)>
دیدگاه
دیدگاه