Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
grega1
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 2
1

Последовательное плавное управление яркостью светодиодов

27.01.2014, 16:42. Просмотров 2174. Ответов 6
Метки нет (Все метки)

Нужно написать программку на Atmega48 в CodevisionAVR
Используя PORTD 0 1 2
С начало загорается на 0 канале диод потом постепенно переходи на 1 потом также 2 и обратно
(плавно переходя с одного на другой) без использования ШИМ и с использованием ШИМ.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 16:42
Ответы с готовыми решениями:

Последовательное гашение светодиодов на окружности с интервалом
Помогите пожалуйста! Разработать программу, осуществляющую последовательное гашение светодиодов на...

Управление яркостью через триммер и АЦП
Суть задания-используя переменный резистор стенда(подключенный к ацп) управлять яркостью...

BAM. Управление яркостью светодиодов.
Подкиньте, пожалуйста идей, как лучше сделать. Хочу чтобы параллельно обрабатывалось какое-то...

Управление яркостью светодиодов бинарной модуляцией [AVR studio]
Здравствуйте, нужно реализовать эффект на светодиодах с изменением их яркости. Эффект такой:самый...

ATMega16 (ASM). Плавное управление яркостью, генерация звука и отображение на семисегментнике
Всем привет!!! помогите пож-та. у меня такая проблема. необходимо объединить 3 пункта программы и...

6
grega1
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 2
27.01.2014, 17:22  [ТС] 2
Нужно чтоб один загорался и гас плавно переходил в последующие.
А тут получается что все немного все равно горят



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <mega48.h> 
#include <delay.h> 
 
char l[8]={0,0,0,0,0,0,0,0}; 
char l2[8]={0,0,0,0,0,0,0,0}; 
 
char t=0; 
char ln=0; 
char i; 
char tb[16]={7,10,11,12,13,14,15,17,20,24,29,45,70,100,140,180}; 
char tn=0; 
 
interrupt [TIM0_OVF] void timer0_ovf_isr(void) { 
if (t==0) { 
PORTD=0x3f; 
 
PORTC=0x3f;
} 
for (i=0;i<8;i++) { 
if (t>=l[i]) PORTD&=~(1<<i);
 
if (t>=l[i]) PORTC&=~(1<<i);
}      
t++; 
} 
 
 
void main(void) { 
char n; 
#pragma optsize- 
CLKPR=0x60; 
CLKPR=0x00; 
#ifdef _OPTIMIZE_SIZE_ 
#pragma optsize+ 
#endif 
 
PORTB=0x00; 
DDRB=0x00; 
PORTC=0x00; 
DDRC=0x00; 
PORTD=0x00; 
DDRD=0x00; 
 
TCCR0A=0x00; 
TCCR0B=0x01; 
TCNT0=0x00; 
OCR0A=0x00; 
OCR0B=0x00; 
 
TIMSK0=0x01; 
 
#asm("sei") 
 
while (1) { 
l2[ln]=15; 
 
for (n=0;n<8;n++) { 
if (l2[n]>0&&n!=ln) l2[n]--; 
} 
 
for (n=0;n<8;n++) l[n]=tb[l2[n]]; 
 
tn++; 
if (tn==5) { 
ln++; 
if (ln>7) ln=0; 
tn=0; 
} 
 
delay_us(200); 
 
} 
}
0
raxp
10192 / 6575 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
27.01.2014, 22:51 3
ШИМ.

Для светодиодов характеристика логарифмическая и дискретность по шагам должна быть 32, 64, 128, 256 и т.д.
1
pyzhman
1151 / 509 / 74
Регистрация: 15.05.2012
Сообщений: 2,898
28.01.2014, 08:04 4
В любом случае нужна шим. Только в первом случае программно сформированная, а в другом - аппаратно, если я верно понял ТС. Для первого случая написать изменяемую скважность для трех портов, для второго - задействовать таймер в соответствующем режиме.
0
Voland_
1665 / 1053 / 99
Регистрация: 04.01.2010
Сообщений: 3,566
30.01.2014, 01:20 5
Цитата Сообщение от raxp Посмотреть сообщение
характеристика логарифмическая
это точно. А еще очень сложно сделать, чтобы "потухали" светики плавно, т.к. даже со скважностью в 12000(!) сд-лента уже неплохо светится (но еще мало светит) в темноте... Только х-ку в недавнем проекте сделал квадратичной. Может в обвязке что намудрил - все собиралось "на коленке" и найденном в ящике КТ818 .
0
Grey
Тутошний я
1740 / 901 / 158
Регистрация: 03.11.2009
Сообщений: 2,800
Записей в блоге: 1
30.01.2014, 19:27 6
Чем плоха прямая характеристика?
0
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
30.01.2014, 19:31 7
Долго горят, а потом резко тухнут.
0
30.01.2014, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 19:31

Последовательное зажигание светодиодов
Собственно задание: при включении МК светодиоды не горят, через 2 с загораются 1-й, затем...

Последовательное зажигание светодиодов по кнопке (ATtiny2313, Cи)
Здравствуйте.Есть такая проблема.Написал код для подпрограммы последовательного зажигания...

Последовательное зажигание светодиодов по кнопке (ATmega8515, ASM)
Добрый день. Требуется помощь для написания программы на ассемблере под AVR ATmega8515...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru