سلام دوستان با چه دستوری میشه سه میکرو سوییچ که هر کدوم به یک پایه وصل هستن رو مدام چک کنیم و در هر جای برنامه که باشیم اگه هر کدوم از میکروسویچ ها که فشار داده بشه دستورات مربوط به اون کلید اجرا بشه
اطلاعیه
Collapse
No announcement yet.
چک کردن مداوم سه پین میکرو
Collapse
X
-
پاسخ : چک کردن مداوم سه پین میکرو
سلام
یک راه وصل کردن کلید ها به پایه های اینتراپت خارجی می باشد در این صورت هر وقت کلید فشار داده شود برنامه باید برود و اینتراپت مربوطه را انجام دهد.
راه دوم اینکه از یک تایمر اینتراپت استفاده کنی و چک کردن را در اینتراپت تایمر انجام دهی.
من این دو راه را بلد بودم!!!دکتر چمران در 1311 در تهران متولد شد
وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.
-
پاسخ : چک کردن مداوم سه پین میکرو
نوشته اصلی توسط s.m.alaviاین سه پین رو چطوری میشه به یه اینتراپت وصل کرد ؟
کی پد چطور ؟ 4 تا پین چطوری به یه اینتراپت وصل میشه ؟
یک راه به ذهنم می رسد باید تست بشه:
اگر کی پد پول پ است
همه ی پایه ها ی ورودی را به آند دیودها بزنید و بعد کاتد هر دیود را به یک خازن مثلا 220 نانو بدی سر دیگر خازن ها را به هم بزنی و بعد سر مشترک را هم به یک اینتراپت خارجی وصل کنی و هم به یک مقاومتی که به زمین خورده است.
البته من کاری که در بالا گفتم را تست نکردم ابداع ذهنمه می توانی چک کنی
البته کار راه تر همین استفاده از یک تایمر اینتراپت است که اسکن صفحه را داخلش انجام بدهی اونوقت وقتی به مقدار زمان خاصی که رسید صفحه کلید را چک می کند.دکتر چمران در 1311 در تهران متولد شد
وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.
دیدگاه
-
پاسخ : چک کردن مداوم سه پین میکرو
سلام، نه دیگه چرا میکرو بنده خدا رو الکی با وقفه های یه تایمر معطل کنیم؟ :NO:
این جور مواقع باید یه مداری طبق شماتیک زیر ببندیم:
و یه کدش هم تو محیط بسکام میشه:
کد:'read 3 keys with interrupts by Behnam Zakizadeh [2013] http://avr64.com $regfile="m8def.dat" $crystal=1000000 config lcdpin=pin, rs=pinb.0, e=pinb.1, db4=pinb.2, db5=pinb.3, db6=pinb.4, db7=pinb.5 config lcd=16*2 ddrd.7 = 0 'input ddrd.6 = 0 'input ddrd.5 = 0 'input portd.7 = 1 'active pull-up portd.6 = 1 'active pull-up portd.5 = 1 'active pull-up key1 alias pind.7 key2 alias pind.6 key3 alias pind.5 config INT0= LOW LEVEL on int0 read_keys enable INT0 enable INTERRUPTS cls:cursor off do 'your code here loop end read_keys: cls lcd "keys status:" lowerline lcd "k1:";key1;" k2:";key2;" k3:";key3 return
دیدگاه
-
پاسخ : چک کردن مداوم سه پین میکرو
نوشته اصلی توسط بهنام زکی زادهسلام، نه دیگه چرا میکرو بنده خدا رو الکی با وقفه های یه تایمر معطل کنیم؟ :NO:
این جور مواقع باید یه مداری طبق شماتیک زیر ببندیم:
و یه کدش هم تو محیط بسکام میشه:
کد:'read 3 keys with interrupts by Behnam Zakizadeh [2013] http://avr64.com $regfile="m8def.dat" $crystal=1000000 config lcdpin=pin, rs=pinb.0, e=pinb.1, db4=pinb.2, db5=pinb.3, db6=pinb.4, db7=pinb.5 config lcd=16*2 ddrd.7 = 0 'input ddrd.6 = 0 'input ddrd.5 = 0 'input portd.7 = 1 'active pull-up portd.6 = 1 'active pull-up portd.5 = 1 'active pull-up key1 alias pind.7 key2 alias pind.6 key3 alias pind.5 config INT0= LOW LEVEL on int0 read_keys enable INT0 enable INTERRUPTS cls:cursor off do 'your code here loop end read_keys: cls lcd "keys status:" lowerline lcd "k1:";key1;" k2:";key2;" k3:";key3 return
عیب مدا:
وقتی دیود فعال شدش و پایه را یک کرد چه کسی صفرش باید بکند!!!؟؟؟
البته خازن سری با دیود هم برای اینکه لرزش و ... را بگیرد در واقع یک تریگ برای اینتراپت خارجی کافی می باشد.دکتر چمران در 1311 در تهران متولد شد
وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.
دیدگاه
-
پاسخ : چک کردن مداوم سه پین میکرو
چرا خودتون رو اذیت می کنین؟؟
یه دستور هست به اسم "debounce" که به طور تقریبی هر 10ms میاد هر پینی که بهش گفتین رو چک می کنه . اگر آن پین وضعیتی که شما می خواین رو داشت بعد از 25ms دو باره میاد و چک می کنه و اگه باز هم همونطور بود این را به منزله ی فشرده شدن کلید می گیره و به lable ای که بهش گقتین پرش می کنه هر چند تا پین رو هم خواستید کنترل کنین با این دستور میشه
شکل کلی:
کد:debounce PINx.y , state , lable [, SUB]
[glow=green,2,300][b]بشر ممکن الخطاست
درخت هرچه پربار تر سر به زیر تر[/glow]
دیدگاه
-
پاسخ : چک کردن مداوم سه پین میکرو
وقتی دیود فعال شدش و پایه را یک کرد چه کسی صفرش باید بکند!!!؟؟؟
البته خازن سری با دیود هم برای اینکه لرزش و ... را بگیرد در واقع یک تریگ برای اینتراپت خارجی کافی می باشد.
چرا خودتون رو اذیت می کنین؟؟
یه دستور هست به اسم "debounce" که به طور تقریبی هر 10ms میاد هر پینی که بهش گفتین رو چک می کنه . اگر آن پین وضعیتی که شما می خواین رو داشت بعد از 25ms دو باره میاد و چک می کنه و اگه باز هم همونطور بود این را به منزله ی فشرده شدن کلید می گیره و به lable ای که بهش گقتین پرش می کنه هر چند تا پین رو هم خواستید کنترل کنین
دیدگاه
دیدگاه