سوال در مورد برنامه بیسیک

kazi1366

عضو جدید
سلام دوستان.
من تازه شروع به برنامه نویسی کردم.یه سوال داشتم اگه ممکنه راهنماییم کنید
من یه برنامه میخام بنویسم با فشردن 4 بار یک دکمه که ولتاِز صفر رو به یه پایه میکرو میده بیاد یه عملی مثلا یه پایه در یه پورت دیگه رو یک کنه.اینم برنام هس


$regfile = "M32def.dat"
$crystal = 8000000
Config Debounce = 500


Dim A As Byte




Ddrb.0 = 0 : Portb.0 = 1
Config Portc = Output
A = 0


Declare Sub Increment


Do
Debounce Pinb.0 , 0 , Increment
Loop
End






Sub Increment
incr a
Waitms 100
If A = 2 Then
Porta.1 = 1
Waitms 200


End If


End Sub
 

Pro.Eng

متخصص plc
کاربر ممتاز
این برنامه که شما نوشتید که برای 2 بار فشردن کلید هستش ولی خوب با همین 2 بار هم اجرا نمیکنه. شما waitms هات رو تغییر بده شاید از اون باشه.
یا اینکه debounce رو کمتر کن مثلاً بزار 30.
میتونی داخل روتین debounce از دستور bitwait هم استفاده بکنی که کار از محکم کاری عیب نکنه یعنی بعد اینکه رفت تو زیر برنامه مربوط به debounce باز هم پین مورد نظر رو چک کنه و اگر کماکان پین مورد نظر مقدار مورد نظر 0 یا 1 رو داشت ادامه روتین رو اجرا کنه و اگر نه از زیر برنامه بیاد بیرون.

 
بالا