سلام خدمت اساتید
من برنامه زیر را نوشته ام ولی تنها در دو سیکل جواب می دهد و از سیکل سوم اشتباه است
شرح برنامه : در این برنامه یک تایمر 8 ثانیه ای ساختیم و در صورت تحریک portd.5 اگر 8 ثانیه تحریک ادامه داشته باشد portb.0 یک میشود.
اگر قبل از تمام شدن 8ثانیه تحریک portd.5 قطع شود تایمر ریست می شود و منتظر میشود که دوباره پایه pind.5 تحریک شود.
چطور میتونم این برنامه را به یه صورت دیگه بنویسم که همین نتیجه را بدهد این طرز برنامه نویسی ظاهرا درست نیست.
اینم عکس مدار از همین حالا بگم که به مدار اشکال نگیرید من بیشتر در برنامه نویسی آن اشکال دارم
من برنامه زیر را نوشته ام ولی تنها در دو سیکل جواب می دهد و از سیکل سوم اشتباه است
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1024 : Stop Timer1
Config Portb = Output
Config Pind.5 = Input
Enable Interrupts
nable Timer1
Enable Ovf1
On Ovf1 Test3
Do
If Pind.5 = 1 Then
Start Timer1
Do
If Pind.5 = 0 Then
Stop Timer1
Timer1 = 0
Reset Portb
End If
Loop Until Pind.5 = 1
End If
Loop
Test3:
Portb = &B00000001
Return
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1024 : Stop Timer1
Config Portb = Output
Config Pind.5 = Input
Enable Interrupts
nable Timer1
Enable Ovf1
On Ovf1 Test3
Do
If Pind.5 = 1 Then
Start Timer1
Do
If Pind.5 = 0 Then
Stop Timer1
Timer1 = 0
Reset Portb
End If
Loop Until Pind.5 = 1
End If
Loop
Test3:
Portb = &B00000001
Return
شرح برنامه : در این برنامه یک تایمر 8 ثانیه ای ساختیم و در صورت تحریک portd.5 اگر 8 ثانیه تحریک ادامه داشته باشد portb.0 یک میشود.
اگر قبل از تمام شدن 8ثانیه تحریک portd.5 قطع شود تایمر ریست می شود و منتظر میشود که دوباره پایه pind.5 تحریک شود.
چطور میتونم این برنامه را به یه صورت دیگه بنویسم که همین نتیجه را بدهد این طرز برنامه نویسی ظاهرا درست نیست.
اینم عکس مدار از همین حالا بگم که به مدار اشکال نگیرید من بیشتر در برنامه نویسی آن اشکال دارم

دیدگاه