Вт май 02, 2017 15:55:32
Вт май 02, 2017 16:12:56
Ну и можете проект с протеусом прикрепить, ежели чего...
Вт май 02, 2017 16:38:24
Mmode = Mmode + 1 'инкрементируем
Вт май 02, 2017 17:16:12
If Btn = 0 Then
Mmode = S ---->> ДОБАВИЛ ТОЛЬКО ЭТУ СТРОЧКУ.
Waitms 500
Mmode = Mmode + 1 'инкрементируем
Waitms 500
S = Mmode 'сохраняем в S Eram
Waitms 500
Led = 1 'мигаем 1 раз
Waitms 100
Led = 0
Waitms 100
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
Else 'в противном случае
If Btn = 1 Then 'если кнопку не нажимали
Waitms 500
Mmode = S 'считываем раннее записанное значение Mmode (режима)
End If 'конец условия
Wait 3
End If 'конец условия
End If 'конец условия
Вт май 02, 2017 17:33:08
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
Вт май 02, 2017 17:35:49
Mmode = S
If Btn = 0 Then
Waitms 500
....
If Mmode >= 2 Then 'Сбрасываем в ноль, если Mmode больше или равно 2.
Mmode = 0
Вт май 02, 2017 17:46:10
Вт май 02, 2017 18:49:49
Вт май 02, 2017 18:53:35
edm2007 писал(а):изначально по всем адресам записано значение FF
Чт май 04, 2017 10:40:08
Dim S As Eram Byte
Dim Mmode As Byte
Dim Flag As Byte
If Btn = 0 Then
Flag = S
Waitms 500
Flag = Mmode + 1 'инкрементируем
Waitms 500
S = Flag 'сохраняем в S Eram
Waitms 500
Led = 1 'мигаем 1 раз
Waitms 100
Led = 0
Waitms 100
If Flag >= 2 Then 'Сбрасывам в ноль, если Flag больше или равно 2.
Flag = 0
Else 'в противном случае
If Btn = 1 Then 'если кнопку не нажимали
Waitms 500
Flag = S 'считываем раннее записанное значение Mmode (режима)
End If 'конец условия
Wait 3
End If 'конец условия
End If 'конец условия
Do
....
Loop
...
...
'================= О Б Р А Б О Т Ч И К П Р Е Р Ы В А Н И Й ==
'/// ---> ВЫКЛЮЧАЕМ ДХО
Drl_off: 'метка
If Flag = 1 And Turn = 1 Then 'Если выбран Flag=1 и включен поворотник, тогда
Pwm0a = 255 'Включаем ШИМ на полную яркость
Else 'В противном случае, Flag=0 + включен поворотник, тогда
Pwm0a = 0 'Выключаем ШИМ вовсе
End If 'конец условия
Bitwait Turn , Reset 'ждем когда поворотник перестанет мигать
Return 'выходим
Чт май 04, 2017 10:46:02
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
S = Mmode 'сохраняем в S Eram
Чт май 04, 2017 11:11:01
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
S = Mmode 'сохраняем в S Eram
'/// ---> НАСТРОЙКА РЕЖИМА РАБОТЫ
'До подачи питания нажимаем кнопку и держим до тех пор,
'Значение Mmode не изменится
'LED мигнет 1раз сигнализируя о том, что настройка сохранилась
Mmode = S
If Btn = 0 Then
Waitms 500
Mmode = Mmode + 1 'инкрементируем
Waitms 500
S = Mmode 'сохраняем в S Eram
Waitms 500
Led = 1 'мигаем 1 раз
Waitms 100
Led = 0
Waitms 100
If Mmode >= 2 Then 'Сбрасывам в ноль, если Mmode больше или равно 2.
Mmode = 0
S = Mmode ------> 'ВОТ ЭТА СТРОЧКА, из-за которой вся головная боль началась :)
Else 'в противном случае
If Btn = 1 Then 'если кнопку не нажимали
Waitms 500
Mmode = S 'считываем раннее записанное значение Mmode (режима)
End If 'конец условия
Wait 3
End If 'конец условия
End If 'конец условия
Вс май 28, 2017 06:51:40
$regfile = "attiny13a.dat"
$crystal = 4800000
$hwstack = 8
$swstack = 16
$framesize = 32
Config Pinb.1 = Input
Config Portb.2 = Output
Config Int0 = Falling
On Int0 Pr
Enable Interrupts
Enable Int0
Dim A As Long
Hrom Alias Pinb.1
Rele Alias Portb.2
A = 0 : Reset Rele
Do
If Hrom = 1 Then Incr A
If A = 1200000 Then
Reset Rele
Powerdown
End If
Loop
Pr:
A = 0 : Set Rele
Return
End
$regfile = "attiny13a.dat"
$crystal = 4800000
$hwstack = 8
$swstack = 16
$framesize = 32
Config Pinb.3 = Input
Config Portb.1 = Output
Hrom Alias Pinb.3
Rele Alias Portb.1
Dim A As Long
A = 0 : Reset Rele
Do
If Hrom = 0 Then Set Rele
If Hrom = 1 Then
Incr A
If A = 1200000 Then
Reset Rele : A = 0
End If
End If
Loop
Вс май 28, 2017 08:09:38
$regfile = "attiny13a.dat"
$crystal = 4800000
$hwstack = 8
$swstack = 16
$framesize = 32
Config Pinb.3 = Input
Config Portb.1 = Output
Hrom Alias Pinb.3
Rele Alias Portb.1
Dim A As byte
A = 0 : Reset Rele
Config Timer0 = Timer , Prescale = 1024
Enable Timer0
Enable interrupts
On Timer0 Incr_a
Stop Timer0
Do
If Hrom = 0 Then Set Rele
If Hrom = 1 Then
Start timer0
While Hrom = 1
If A > 37 Then
Stop Timer0
A = 0
Reset Rele
Exit While
End If
Wend
Stop Timer0
A = 0
End If
Loop
Incr_a:
incr a
return
End 'end program
Вс май 28, 2017 08:34:00
Вс май 28, 2017 20:05:39
Вс май 28, 2017 20:53:27
If Hrom = 1 Then
waitms 200
Start timer0
...
Чт июн 15, 2017 10:02:39
Пт июн 16, 2017 19:25:36
$Regfile="attiny85.dat"
$Crystal=8000000
$hwstack=40
$swstack=16
$framesize=32
Config Portb.0 = Output 'R
config portb.1 = output 'G
config portb.4 = output 'B
Config PORTB.3 = output 'белый свет
Config PINB.2 = input 'кнопка
Config Int0 = Falling : On INT0 Button
Config Timer1 = Timer , Prescale = 1 : On Timer1 Pwm_prog : Enable Timer1 : Enable Interrupts : start timer1 : Enable Int0
Dim S As Byte , A as Byte , C(3) as byte , B as Byte
B=0
for A=0 to 63 'увеличиваем красный
C(1)=lookup(A , TAB_PWM)
waitms 20
next
Do
if B=1 then goto 1
if B=2 then goto 2
loop
2:
do
If B=2 then
тут длинный и долгий ШИМ для светодиодов
End if
Loop
1:
Do
If B=1 Then
PORTB.0 = 0 : PORTB.1 = 0 : PORTB.4 = 0 : PORTB.3 = 1 'включаем белый свет
End if
Loop
end
Pwm_prog:
Return
Button:
Incr B
waitms 10
if B>2 then B = 0
Return
5
Сб июн 17, 2017 15:30:59