امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 2
  • 1
  • 2
  • 3
  • 4
  • 5
مشكل در چك كردن كليد با دستور debounce
نویسنده پیام
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #1
مشكل در چك كردن كليد با دستور debounce
سلام .من مداری طراحی کردم که با چند کلید ورودی چند خروجی برایم چند کار خاص انجام دهند با این شرط که اگر درحین کار هر کدام از خروجی ها یکی از ورودی های مشخص دوباره زده شود سیستم دست ا زادامه فعالیت قبلی بردارد وکار این کلید خاص را انجام دهد.من با دستورdebounce این کار را انجام دادم ولی این کلید خاص فقط بار اول فعال میشود وخروجی اش ثابت میماند.وبا تکرار فشار دادن این کلید در زمان دیگری دوباره فعال نمیشود یا به اصطلاح ری استارت نمی کند
لطفا اگر کسی متواند کمکم کند 4 روز بیشتر زمان ندارم
(آخرین ویرایش در این ارسال: ۰۹-دى-۱۳۹۲, ۱۵:۳۸:۱۹، توسط sharin.)
۰۹-دى-۱۳۹۲, ۱۴:۳۱:۵۳
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #2
RE: ;دست یاری می خواهم
(۰۹-دى-۱۳۹۲, ۱۴:۳۱:۵۳)velakat نوشته است: سلام .من مداری طراحی کردم که با چند کلید ورودی چند خروجی برایم چند کار خاص انجام دهند با این شرط که اگر درحین کار هر کدام از خروجی ها یکی از ورودی های مشخص دوباره زده شود سیستم دست ا زادامه فعالیت قبلی بردارد وکار این کلید خاص را انجام دهد.من با دستورdebounce این کار را انجام دادم ولی این کلید خاص فقط بار اول فعال میشود وخروجی اش ثابت میماند.وبا تکرار فشار دادن این کلید در زمان دیگری دوباره فعال نمیشود یا به اصطلاح ری استارت نمی کند
لطفا اگر کسی متواند کمکم کند 4 روز بیشتر زمان ندارم
یه کدی چیزی بزارید تا نگاهی بهش بکنیم
احتمالا شما پس از دریافت کار اون کلیدخاص دیگه به برنامه اصلی بر نمی گردید تا کلید ها دوباره چک شوند

اسم پست هارو هم درست انتخاب کنید خواهشا که مفهوم رو برسونه

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
(آخرین ویرایش در این ارسال: ۰۹-دى-۱۳۹۲, ۱۵:۱۳:۳۷، توسط behzady.)
۰۹-دى-۱۳۹۲, ۱۵:۱۲:۵۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, babyy
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #3
RE: مشكل در چك كردن كليد با دستور debounce
هرکدام از 2 ورودی که زده شود کار را به آخر می رساند .اگر هم هردو فشارداده شوند باز، پس از پایان کار یکی ،کار دومی شروع می شود و بس .یعنی نمی توان دوباره کلیدهارا بکار برد
.
.
.

کد php:
Config Debounce 30

       
Do

   
Debounce Pina.0 Power1 Sub
    
     Debounce Pina.2 
Spin Sub
      
        Loop

    End

      Power1
:
         
Cls
        Set Portc.0
           B 
0
           Lcd B
         Waitms 100
         Cls
         B 
1
         Reset Portc.0
         Lcd B

       
Return


      
Spin:

         
Set Portc.1
          Waitms 50
          
If Pind.6 0 Then
       Set Portc.2

       Waitms 200
       Reset Portc.1
       Reset Portc.2
       Waitms 200
       Set Portc.1
       Set Portc.3
       Set Portc.2
       Waitms 200
       Reset Portc.2
       Reset Portc.3
       Waitms 200
       Set Portc.2
       Waitms 200
       Set Portc.4
       Waitms 500
       Reset Portc.4
       Waitms 50
                    Set Portc.2
       Waitms 200
                    Reset Portc.2
       Waitms 200
                  Set Portc.3
                  Set Portc.2
       Waitms 200
       Reset Portc.2
       Reset Portc.3
       Reset Portc.1

       
Else
       
Waitms 50
       
Goto Spin
        End 
If
       Return 
(آخرین ویرایش در این ارسال: ۱۰-دى-۱۳۹۲, ۰۰:۰۳:۰۵، توسط babyy.)
۰۹-دى-۱۳۹۲, ۲۳:۴۲:۳۳
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #4
RE: مشكل در چك كردن كليد با دستور debounce
(۰۹-دى-۱۳۹۲, ۲۳:۴۲:۳۳)velakat نوشته است: هرکدام از 2 ورودی که زده شود کار را به آخر می رساند .اگر هم هردو فشارداده شوند باز، پس از پایان کار یکی ،کار دومی شروع می شود و بس .یعنی نمی توان دوباره کلیدهارا بکار برد
.
.
.

کد php:
Config Debounce 30

       
Do

   
Debounce Pina.0 Power1 Sub
    
     Debounce Pina.2 
Spin Sub
      
        Loop

    End

      Power1
:
         
Cls
        Set Portc.0
           B 
0
           Lcd B
         Waitms 100
         Cls
         B 
1
         Reset Portc.0
         Lcd B

       
Return


      
Spin:

         
Set Portc.1
          Waitms 50
          
If Pind.6 0 Then
       Set Portc.2

       Waitms 200
       Reset Portc.1
       Reset Portc.2
       Waitms 200
       Set Portc.1
       Set Portc.3
       Set Portc.2
       Waitms 200
       Reset Portc.2
       Reset Portc.3
       Waitms 200
       Set Portc.2
       Waitms 200
       Set Portc.4
       Waitms 500
       Reset Portc.4
       Waitms 50
                    Set Portc.2
       Waitms 200
                    Reset Portc.2
       Waitms 200
                  Set Portc.3
                  Set Portc.2
       Waitms 200
       Reset Portc.2
       Reset Portc.3
       Reset Portc.1

       
Else
       
Waitms 50
       
Goto Spin
        End 
If
       Return 
من مشکلی ندیدم! شاید هم منظور شما رو نگرفتم!
الان پس از انجام تابع دوباره بر میگرده و شما می تونید کلید ها رو فشار بدید
فقط چند تا نکته
1- وقتی برنامه تابع ها اجرا میشه کلید ها دیگه خونده نمی شن برای همین اگه اون موقع کلیدی بزنید گرفته نمیشه
2- توی تابع کلید دوم یه شرط برای pind6 گذاشتید که اگه واقع نشه دیگه به تابع اصلی بر نمی گرده و در نتیجه کلید ها دیگه چک نمی شن

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۱۰-دى-۱۳۹۲, ۰۲:۰۴:۱۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, babyy, sharin
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #5
RE: مشكل در چك كردن كليد با دستور debounce
با سلام. ببینید من مشکلی با کار انجام شده هر خروجی ندارم چون کار بطور صحیح طبق آنچه مد نظر من است انجام می شود.مشکل من همانطور که توضیح دادم این است که بعد از پایان کار هر خروجی ،اگر دوباره پین مربو طه را فشار دهیم این بار هیچ عکس العملی صورت نمیگیرد در صورتی که انتظار دارم در یک چرخه مانند Do Loop این کار هرچقدر بخواهیم قابل تکرار باشد. من از GOTO و jmp هم استفاده کردم ولی نشد.این دوتا دستور را در هرکجا بکار میبرم کار میکنند ولی فقط در گرفتن دستور از طریق کلید این مشکل پیش می آید.در مورد Pind.6 یک ورودی است که طوری طراحی شده که می توان دستی آنرا وصل کرد .وشرط برقرار میشود ودر نهایت کار خواسته شده انجام میگیرد .ولی پس از پاین کار هر چقدر کلید pina.2 رادوبار فشار دهیم دوباره کار از اول شروع نمی شود((البته به شرطی که میکرو ومدار همچنان روشن است ))],چون همان لحظه در پروتوس نتیجه را میبینم.راستش را بخواهید من با این اطلاعات ناقصم گیج شدم که چرا هر چقدر هم شرط می گذارم باز مدار کار مجدد انجام نمیشود
۱۰-دى-۱۳۹۲, ۱۹:۱۵:۱۸
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #6
RE: مشكل در چك كردن كليد با دستور debounce
يه شماتيك از طراحي كليدهاتون كه به پايه ها وصل هست بذاريد.

برنامه ي ساده ي زير رو روي ميكرو پروگرام كنيد ببينيد همه چيز اوكي هست ( كليد ها مدام چك مي شن؟ )
با زدن كليد اول led اي كه به c.0 هست بايد تغيير وضعيت بدهه و بعد از 200 ميلي ثانيه برگرده به حالت قبلش
با زدن كليد دوم هم اين وضعيت براي led متصل به پايه ي c.1 بايد به وجود بياد
کد php:
Do

   
Debounce Pina.0 Lbl1 Sub
   Debounce Pina.2 
Lbl2 Sub

Loop

End

Lbl1
:
Set Portc.0
Waitms 200
Reset Portc.0
Return

Lbl2:
Set Portc.1
Waitms 200
Reset Portc.1
Return 

۱۰-دى-۱۳۹۲, ۱۹:۴۵:۲۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : behzady, babyy
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #7
RE: مشكل در چك كردن كليد با دستور debounce
برای این برنامه مدارش را در پروتوس 7 طرا حی کردم .جواب نمیده. هرکدام از کلیدها فقط یکبار عمل مکنند .درست مثل برنامه خودم
۱۰-دى-۱۳۹۲, ۲۳:۳۷:۵۳
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #8
RE: مشكل در چك كردن كليد با دستور debounce
(۱۰-دى-۱۳۹۲, ۲۳:۳۷:۵۳)velakat نوشته است: برای این برنامه مدارش را در پروتوس 7 طرا حی کردم .جواب نمیده. هرکدام از کلیدها فقط یکبار عمل مکنند .درست مثل برنامه خودم
خوب فایل برنامش رو خوهشا قرار بدید

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۱۰-دى-۱۳۹۲, ۲۳:۴۰:۵۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, babyy
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #9
RE: مشكل در چك كردن كليد با دستور debounce
با سلام مجدد.دوستان فکر میکنم مشکل من از خود نرافزار پروتوس 7 میباشد که از اینترنت داللود کردم.چون بعد از تست برنامه بالا وکار نکردن دوباره آن ،رفتم سراغ شماتیکهای از قبل طراحی شده کتاب آقای بخت آور که در داخل سی دی آن قرار داشت وکاملا اجرا شد.سپس من هم به همان روش کار کردم ومدار را طرا حی وبرنامه را نوشتم و در عین ناباوری مدار من که کاملا با مدار داخل سی دی مطابقت داشت وبرنامه بسکام هم عین همان ، باز هم یکبار اجرا شد ودیگه کار نکرد.حالا نظر شما چیه
۱۱-دى-۱۳۹۲, ۰۰:۱۲:۲۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #10
RE: مشكل در چك كردن كليد با دستور debounce
اين ورژن رو از كجا گير آورديد؟!

بله ، ورژن هاي پايين باگ زياد داشتن. احتمالش بسيار زيادهه
نسخه ي 11 ، 12 نصب كنيد. نمي دونم آخرين ورژنش چندهه ، با بسكام خيلي وقته كار نمي كنم...

۱۱-دى-۱۳۹۲, ۰۰:۲۲:۰۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy
velakat آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۹۲

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #11
RE: مشكل در چك كردن كليد با دستور debounce
ابتدا ببخشید که بعض وقتها ااملاء نوشته ها خوب در نمیاد.
منظور من از اینکه برنامه آقای بخت آور کار میکرد این است که هر چند بار که کلیدها فشار داده شوند برنامه باز هم کار را دوباره انجام میدهد.ولی برنامه ای که من از روی برنامه آقای بخت آور کپی کردم وشماتیک را عین ایشان طراحی کردم ،فقط یکبار اجرا میشود
اینم برنامه ساده داخل کتاب
کد php:
$regfile "m8def.dat"
  
$crystal 8000000

Config Portb 
Output
Config Porta 
Input
Config Debounce 
30
Do
Debounce Pind.3 Roshan Sub
Debounce Pind.4 
Khamosh Sub
Loop
End

Roshan
:
Set Portb.2
Return
Khamosh:
Reset Portb.2
Return 

منظورم برنامه پروتوس است (نرم افزار شبیه ساز مدار) نه بسکام .هر چند نمی دانم ورژن پروتوس از 8 بیشتر شده یانه
بسکام هم 1.11.9.8
(آخرین ویرایش در این ارسال: ۱۱-دى-۱۳۹۲, ۱۵:۴۷:۵۱، توسط babyy.)
۱۱-دى-۱۳۹۲, ۰۰:۲۸:۲۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  شمارش تعداد پالس های یک دستور؟ Ambassador 2 2,996 ۲۷-اردیبهشت-۱۳۹۶, ۱۶:۲۰:۵۶
آخرین ارسال: Ambassador
  دستور delay_ms واقعی کار نمیکنه 67Sama 3 3,180 ۱۱-آبان-۱۳۹۵, ۰۰:۲۱:۳۷
آخرین ارسال: behzady
  مشكل با پورت سريال در متلب leila.66 8 11,927 ۱۲-شهریور-۱۳۹۵, ۲۰:۳۹:۳۴
آخرین ارسال: 36taregh
  سوال در مورد دستور timeout$ mohebbat 3 2,932 ۲۹-بهمن-۱۳۹۴, ۱۲:۳۵:۱۹
آخرین ارسال: 1نفر
  مشكل با ميكرو ATMEGA64 elec645 12 10,853 ۰۲-شهریور-۱۳۹۴, ۱۳:۳۹:۲۰
آخرین ارسال: mbir92
  خاموش کردن echo سیم 900 با دستور ATE0 salmon 0 2,208 ۲۰-تير-۱۳۹۴, ۱۵:۳۱:۲۹
آخرین ارسال: salmon
  مشكل در راه اندازي ميكرو atmega8 fateme67hj 9 6,255 ۲۸-خرداد-۱۳۹۴, ۱۳:۳۲:۱۲
آخرین ارسال: fateme67hj
Question [سوال] مشكل در اندازه گيري دما توسط سنسور ds18b20 moham9d 11 8,196 ۲۴-آبان-۱۳۹۳, ۱۴:۳۵:۵۳
آخرین ارسال: moham9d
  attiny13 و مشكل pcint mohezt 2 3,568 ۲۰-شهریور-۱۳۹۳, ۲۱:۳۹:۲۹
آخرین ارسال: smailhatami
  مشكل در پرگرام كردن avr vb_1985 8 5,637 ۲۴-اردیبهشت-۱۳۹۳, ۱۵:۰۶:۳۱
آخرین ارسال: behzady

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS