roboforum.ruТехнический форум по робототехнике. |
|
|
galex1981 писал(а):надо настраивать прерывание по Rizing а потом по Falling
Do
Portd.1 = 1 )
Waitms 1000 )
Portd.2 = 1 )
Waitms 1000 )
Portd.3 = 1 )1ый круг )
Waitms 1000 ) )
Portd.4 = 1 ) ) 2,3,4... круг...
Waitms 1000 ) )
Portd.5 = 1 ) )
Waitms 1000 ) )
loop
1 круг: 11111111 = FF = 255
2 круг: 00111111 = 3F = 63
3 круг: 00001111 = 0F = 15
4 круг: 00000011 = 03 = 3
Do
Portd.1 = 1
Waitms 255
Portd.2 = 1
Waitms 255
Portd.3 = 1
Waitms 3
Portd.4 = 1
Waitms 3
Portd.5 = 1
Waitms 3
loop
Portd.0 = 1
Portd.1 = 0
Portd.2 = 1
Portd.3 = 0
Portd.4 = 0
Portd.5 = 1
Portd.6 = 0
Portd.7 = 0
portd = 37
portd = 255 = 11111111
portd = 63 = 00111111
portd = 15 = 00001111
portd = 3 = 00000011
11111111
00111111
Shift
$regfile = "m32def.dat"
$crystal = 16000000
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Dim Wtime As Byte
Dim Mymask As Byte
Cls
Wtime = 200
Mymask = 255
Do
Portd = Mymask
Waitms Wtime
Shift Mymask , Right , 2
Loop
End
$regfile = "m32def.dat"
$crystal = 16000000
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Dim Wtime As Byte
Dim Mymask As Byte
Cls
Wtime = 200
Mymask = 1
Do
Portd = Mymask
Waitms Wtime
Shift Mymask , left, 1
Loop
End
Dim Mymask As Byte
Mymask = 255
Dim Myleds As Byte
Myleds = 1
Dim Portstatus As Byte
Portstatus = Myleds And Mymask
Portd = Portstatus
$regfile = "m32def.dat"
$crystal = 16000000
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Dim Wtime As Byte
Dim Mymask As Byte
Dim Myleds As Byte
Dim Portstatus As Byte
Cls
'начальные значения
Wtime = 200
Mymask = 255
Myleds = 1
' основной цикл программы
Do
Do ' цикл мигания свтодиодами
Portstatus = Myleds And Mymask ' рассчитываем состояние порта
Portd = Portstatus ' записывае полученное значение в порт
Waitms Wtime ' пауза
Shift Myleds , Left , 1 ' сдвигаем маску влево, в следущий раз зажгется другой светодиод
Loop Until Portstatus = 0 ' выполняем цикл до тех пор пока состояние порта не вернет 0, те все светодиоды выключены
Myleds = 1 ' сбарсываем позицию светодиода который нужно включить
Shift Mymask , Right , 2 ' круг прошел, сдвигаем маску, в следующий раз два светодиода включать будет уже нельзя
If Mymask = 0 Then Mymask = 255 ' если маска равна 0 значит пора опять разрешить включать все светодиоды
Loop
End
If Pinb.4 = 1 Then
Portb.0 = 1
Waitms 100
Else
Portb.0 = 0
End If
Вернуться в Новичкам или основы основ роботостроения.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10