سلام برنامه زیر فقط یکبار درست اجرا میشه دفعه دوم قاطی میکنه عملا هم بستم توی کدها یا کانفیگ ها مشکلی هست ؟
توضیح: ورودی برنامه درست کار میکنه یعنی با تحریک c.0 برنامه شروع به کارمیکنه که و بعد از زمان مورد نظر که با تایمر 0 درست میشه استپ میکنه تا اینجا int0 , int1 هم درست کار میکنه اما دفعه دوم که پایه c.0 تحریک میشه دیگه نه تایمر 0 کارمیکنه نه int0 و int1 کار میکنه مدار رو هم عملا بستم .
توضیح: ورودی برنامه درست کار میکنه یعنی با تحریک c.0 برنامه شروع به کارمیکنه که و بعد از زمان مورد نظر که با تایمر 0 درست میشه استپ میکنه تا اینجا int0 , int1 هم درست کار میکنه اما دفعه دوم که پایه c.0 تحریک میشه دیگه نه تایمر 0 کارمیکنه نه int0 و int1 کار میکنه مدار رو هم عملا بستم .
کد:
$regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 Config Int0 = Low Level Config Int1 = Low Level Config Portb = Output Config Portc = Input Dim A As Byte , B As Byte , C As Word , D As Byte , E As Byte Dim Ee As Eram Byte Enable Interrupts Enable Int0 On Int0 Tup Enable Interrupts Enable Int1 On Int1 Tdown Enable Interrupts Enable Timer0 Enable Ovf0 On Timer0 Show A = Ee Config Debounce = 30 Do W: Portb = &B00000000 Debounce Pinc.0 , 1 , Y Goto W Y: Start Timer0 Z: Portb = &B00000000 Waitms A Portb = &B00000001 Waitms A Portb = &B00000011 Waitms A Portb = &B00000111 Waitms A Portb = &B00001111 Waitms A Portb = &B00001110 Waitms A Portb = &B00001100 Waitms A Portb = &B00001000 Waitms A Goto Z Goto Y Loop End Tup: If A < 255 Then A = A + 5 Ee = A waitms 50 End If Return Tdown: If A > 10 Then A = A - 5 Ee = A waitms 50 End If Return Show: Incr C If C = 550 Then C = 0 Stop Timer0 Timer0 = 0 Goto W End If Return
دیدگاه