У меня плавное изменение яркости RGB светодиода на Attiny25

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 100
Зарегистрирован: Пт ноя 04, 2016 19:01:57
Откуда: Москва

Сообщение ffilin »



Добавлено after 2 hours 57 minutes 55 seconds:

Код: Выделить всё

' ПРОГРАММА НА 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
Remember Who the Real Enemy is
Контактная информация:
Реклама
Ответить

Вернуться в «МЯЯЯУ!»