با سلام دوستان من کد pwm برای تمام پایه های میکرو atmega 8 در بسکان رو دارم اما مشکل اینجاست که میخوام این کد رو فقط برای پایه های پورت B داشته باشم و به تعداد 10 بار تکرار بشه از دوستان لطفا راهنمائی کنند من کدام قسمت از این افکت رو باید خذف و اضاف کنم $regfile = "m8def.dat"
$crystal = 8000000
Led1 Alias Portd.0
Led2 Alias Portd.1
Led3 Alias Portd.2
Led4 Alias Portd.3
Led5 Alias Portd.4
Led6 Alias Portb.6
Led7 Alias Portb.7
Led8 Alias Portd.5
Led9 Alias Portd.6
Led10 Alias Portd.7
Led11 Alias Portb.0
Led12 Alias Portb.1
Led13 Alias Portb.2
Led14 Alias Portb.3
Led15 Alias Portb.4
Led16 Alias Portb.5
Led17 Alias Portc.0
Led18 Alias Portc.1
Led19 Alias Portc.2
Led20 Alias Portc.3
Led21 Alias Portc.4
Led22 Alias Portc.5
Max_var_pwm Alias 99
Max_led Alias 22
Delay1 Alias 20 'ms
Delay2 Alias 200 'ms
Dim Pwm(35) As Byte , A As Byte , Y2 As Byte , X1 As Byte , X2 As Byte , X3 As Byte
Y2 = Max_led + Max_led
A = Max_var_pwm 'Config All =============================================
'Config Timers 'Config Ports
Config Timer0 = Timer , Prescale = 8
Enable Interrupts
Enable Timer0
On Ovf0 T0
Tcnt0 = 105
Start Timer0
Ddrb = 255
Ddrc = 63
Ddrd = 255 'End Config ============================================
Do
X1 = 0
While X1 < Y2
X2 = Max_led
While X2 > 1
X3 = X2 - 1
Pwm(x2) = Pwm(x3)
Decr X2
Wend
Pwm(1) = Lookup(x1 , Rain)
Waitms Delay1
Incr X1
Wend
Waitms Delay2
Loop
End 'end program
T0:
Tcnt0 = 105
If A > 0 Then
If A = Pwm(1) Then Led1 = 1
If A = Pwm(2) Then Led2 = 1
If A = Pwm(3) Then Led3 = 1
If A = Pwm(4) Then Led4 = 1
If A = Pwm(5) Then Led5 = 1
If A = Pwm(6) Then Led6 = 1
If A = Pwm(7) Then Led7 = 1
If A = Pwm(8) Then Led8 = 1
If A = Pwm(9) Then Led9 = 1
If A = Pwm(10) Then Led10 = 1
If A = Pwm(11) Then Led11 = 1
If A = Pwm(12) Then Led12 = 1
If A = Pwm(13) Then Led13 = 1
If A = Pwm(14) Then Led14 = 1
If A = Pwm(15) Then Led15 = 1
If A = Pwm(16) Then Led16 = 1
If A = Pwm(17) Then Led17 = 1
If A = Pwm(18) Then Led18 = 1
If A = Pwm(19) Then Led19 = 1
If A = Pwm(20) Then Led20 = 1
If A = Pwm(21) Then Led21 = 1
If A = Pwm(22) Then Led22 = 1
End If
Decr A
If A = 255 Then
A = Max_var_pwm
Portb = 0
Portc = 0
Portd = 0
End If
Return
Rain:
Data 99 , 80 , 70 , 60 , 40 , 20 , 15 , 9 , 7 , 5 , 3 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0