Пятница, 04.10.2024, 15:03 Приветствую Вас Гость

Автозапуск за 1500р. на ЛЮБОЙ сигнализации?! -> at13.ru

Главная | Регистрация | Вход | RSS

Как реализовать RGB подсветку на avr? - Форум

[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Advanced  
Как реализовать RGB подсветку на avr?
Artur21Дата: Четверг, 22.01.2015, 11:39 | Сообщение # 1
Сержант
Группа: Проверенные
Сообщений: 24
Репутация: 1
Статус: Offline
Добрый день! Ткните плиз в нужном направлении?", как правильно реализовать подсветку на rgb светодиоде? Т.е. Как плавно зажигать каждый из светодиодов? Я понимаю что шимом, но как?
 
Адвансед6476Дата: Четверг, 22.01.2015, 17:09 | Сообщение # 2
Сержант
Группа: Администраторы
Сообщений: 37
Репутация: 0
Статус: Offline
надеюсь на BASCOM?

В основном цикле программы пишем изменение переменных яркости 3 цветов:

Код
Do

For R = 0 To 255
Waitms 10
Next R

For B = 255 To 0 Step -1
Waitms 10
Next B

For G = 0 To 255
Waitms 10
Next G

Loop
 
Artur21Дата: Четверг, 22.01.2015, 17:14 | Сообщение # 3
Сержант
Группа: Проверенные
Сообщений: 24
Репутация: 1
Статус: Offline
Да, на BASCOM AVR...,а можно полный код ? Если имеется, как пример
 
Адвансед6476Дата: Четверг, 22.01.2015, 17:16 | Сообщение # 4
Сержант
Группа: Администраторы
Сообщений: 37
Репутация: 0
Статус: Offline
код рабочий, проверено

Код
$regfile = "2313def.dat"
$crystal = 4000000

Config Portb = Output

Config Timer0 = Timer , Prescale = 1
Enable Interrupts
Enable Timer0
On Timer0 Timer0isr
Start Timer0

Dim Pwm As Byte , A As Byte
Pwm = 0

Do

For A = 0 To 255
Waitms 10
Next A

For A = 255 To 0 Step -1
Waitms 10
Next A

Loop

Timer0isr:
Incr Pwm

If Pwm > A Then Portb = 1

If Pwm = 255 Then
Pwm = 0
Portb.0 = 0
End If
Return
 
Адвансед6476Дата: Четверг, 22.01.2015, 17:17 | Сообщение # 5
Сержант
Группа: Администраторы
Сообщений: 37
Репутация: 0
Статус: Offline
Step -1 - это шаг в цикле со значением -1. Т.е. в данном примере будет считать так: 255, 254, 253 ... 3, 2, 1, 0. 

Prescale = 1 - это делитель для таймера. Выбирается из стандартного ряда - 1, 64, 256 

On Timer0 Timer0isr - при срабатывании таймера перейти на Timer0isr
 
Artur21Дата: Четверг, 22.01.2015, 17:26 | Сообщение # 6
Сержант
Группа: Проверенные
Сообщений: 24
Репутация: 1
Статус: Offline
Большое спасиьо!
 
  • Страница 1 из 1
  • 1
Поиск:

Поиск
Вход на сайт
Наш опрос
Чем паяют радиодетали?
Всего ответов: 269
Статистика
Друзья сайта