Добавлено (02.02.2019, 01:16)
---------------------------------------------
Код
'ПРОГРАММА НА BASCOM-------------------------------------------------------------------------------
$regfile = "ATtiny25.dat" ' тип процессора
$crystal = 16384000 ' частота кварца
'-------------------------------------------------------------------------------
' соответствие электрических цепей выводам портов
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
' переменные
'----------------------------------------------------------------------
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Bit
Dim T As Byte
'===============================================================================
' начало программы
'-------------------------------------------------------------------------------
Configmodule:
'настройка портов ввода/вывода
' направление
Ddrb = &B00010011 '
'
' 1 где шим
' начальное значение
' Portb = &B00000011 ' (подтягивание)
Tccr1 = &B00000001
Gtccr = &B01100000
Tccr0a = &B10100011
Tccr0b = &B00000001
'78 элементов ШИМ
A = 10
B = 10
C = 250
E = 1
D = 1
Set F
'Config Watchdog = 16
On Timer0 Timer0_int
Enable Interrupts
Enable Timer0
' разрешить работу прерываний
'Start Watchdog
' загрузка конфигурации
Loadconfig:
' основной цикл программы
Main:
'If F = 1 Then Reset Watchdog
'If A > 250 Then Reset F
'If B > 250 Then Reset F
'If C > 250 Then Reset F
If D > 3 Then D = 1
Goto Main
Timer0_int:
Disable Interrupts
Incr T
If T > 200 Then
T = 0
Ocr0a = A ' фаза B канал
Ocr0b = B ' фаза A канал
Ocr1b = C ' фаза С канал
Select Case D
Case 1 : If A > 250 Then
E = 2
C = 10
End If
Case 2 : If B > 250 Then
E = 3
A = 10
End If
Case 3 : If C > 250 Then
E = 1
B = 10
End If
'Case 4 : If B = 255 Then E = 5
'Case 5 : If C = 255 Then E = 6
'Case 6 : If A = 0 Then E = 1
End Select
D = E
Select Case D
Case 1 : Incr A
B = 10
Decr C
Case 2 : Decr A
Incr B
C = 10
Case 3 : A = 10
Decr B
Incr C
End Select
End If
Enable Interrupts
Enable Timer0
Return