Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Шим на 74HС595

Сообщений 1 страница 2 из 2

1

Всем здравствуйте , кто нибудь делал такое чудо? Уж очень понравилась статья ВАМ 768 светодиодов Можно такое реализовать в баском? Подскажите пожалуйста как реализовать ВАМ в баском , по этому поводу нашол только 1 статью , смысл то понятен , но как реализовать.ВАМ

0

2

Код:
Dim Y(8) As Byte                                            'яркость каналов
Dim Timer1_var As Word                                ' переменная для счетчика Таймера1 

Config Timer1 = Timer , Prescale = 8                        'настраиваем таймер1 для управления нагрузкой                                         
On Timer1 Pwms                                              'работа по таймеру 1
Timer1_var = &B1111111111101111                  ' начальное значение счетчика таймера1, для наглядности в двоичном виде
Timer1 = Timer1_var

Enable Interrupts                                               'Разрешаем прерывания
Enable Timer1                                                    'разрешаем работу таймера 1
Start Timer1                                                       'старт  таймера1
 
Y(1) = 255            ' начальные значения яркости каналов
Y(2) = 20
Y(3) = 40
Y(4) = 60
Y(5) = 80
Y(6) = 100
Y(7) = 120
Y(8) = 140

do
     For x = 1 to 8
           incr Y(x) 
           waitms 100
     next

loop

'работа по таймеру - Организация BAM (Bit Angle Modulation)
Pwms:
   Stop Timer1
   If Tik = 8 Then
      Tik = 0
      Timer1_var = &B1111111111101111
   End If
   Portd.7 = Y(1).tik
   Portd.6 = Y(2).tik
   Portd.5 = Y(3).tik
   Portd.4 = Y(4).tik
   Portd.3 = Y(5).tik
   Portd.2 = Y(6).tik
   Portd.1 = Y(7).tik
   Portd.0 = Y(8).tik

   Rotate Timer1_var , Left , 1                             ' сдвигаем все биты переменной влево на один бит
   Timer1 = Timer1_var                                      ' устанавливам счетчик таймера1 на новое начальное значение
   Incr Tik
   Start Timer1
 Return

0