سلام دوستان من تازه شروع به یادگیری avr با زبان **** کردم ..یه برنامه نوشتم که از دستور if توش استفاده شده ..کارشم اینه که سه تا کلید پوش باتون داریم هر کلید را که فشار بدیم 8 led متصل به میکرو به یک حالت خاص چشمک بزنند ..همه چی درست کار میکنه بجز اینکه اگر کلید اول زده بشه led ها شروع به چشمک میکنند همون موقع اگر کلید دوم را بزنیم حالت دوم در حالی اجرا میشه که حالت اول به کار خودش داره ادامه میده....حالا اگه میشه بگید چی کار کنم که بعد از اینکه هر کلید را زدیم حالت قبل متوقف بشه ..ممنون...اینم برنامه .
$regfile = "m32def.dat"
$crystal = 8000000
Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Portb = Output
Do
If Pina.0 = 1 Then
Set Portb.0
Waitms 200
Reset Portb.0
Waitms 200
Reset Portb.1
Waitms 200
Set Portb.2
Waitms 200
Reset Portb.2
Waitms 200
Reset Portb.3
Waitms 200
Set Portb.4
Waitms 200
Reset Portb.4
Waitms 200
Reset Portb.5
Waitms 200
Set Portb.6
Waitms 200
Reset Portb.6
Waitms 200
Reset Portb.7
Waitms 200
End If
If Pina.1 = 1 Then
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Waitms 200
End If
If Pina.2 = 1 Then
Set Portb.4
Waitms 200
Reset Portb.4
Waitms 200
Reset Portb.5
Waitms 200
Set Portb.6
Waitms 200
Reset Portb.6
Waitms 200
Reset Portb.7
End If
Loop
End
$regfile = "m32def.dat"
$crystal = 8000000
Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Portb = Output
Do
If Pina.0 = 1 Then
Set Portb.0
Waitms 200
Reset Portb.0
Waitms 200
Reset Portb.1
Waitms 200
Set Portb.2
Waitms 200
Reset Portb.2
Waitms 200
Reset Portb.3
Waitms 200
Set Portb.4
Waitms 200
Reset Portb.4
Waitms 200
Reset Portb.5
Waitms 200
Set Portb.6
Waitms 200
Reset Portb.6
Waitms 200
Reset Portb.7
Waitms 200
End If
If Pina.1 = 1 Then
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Waitms 200
End If
If Pina.2 = 1 Then
Set Portb.4
Waitms 200
Reset Portb.4
Waitms 200
Reset Portb.5
Waitms 200
Set Portb.6
Waitms 200
Reset Portb.6
Waitms 200
Reset Portb.7
End If
Loop
End
دیدگاه