Easyelectronics.ru

Электроника для всех
Текущее время: 14 дек 2018, 08:28

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Кнопка,удерживающая уровень яркости светодиода
СообщениеДобавлено: 06 мар 2018, 15:31 
Заглядывает иногда

Зарегистрирован: 06 мар 2018, 15:22
Сообщения: 40
Здраствуйте сторожилы форума, учусь программировать на C в Atmel studio 7, сделал таймер T0, написал программный ШИМ в первом else, а в первом if-кнопка, заставляющая мигать светодиод,пока она не нажата, работает ШИМ, ну я думаю это итак понятно) собственно сам вопрос: как заставить кнопку мигать, но чтобы она мигала с той яркостью светодиода, на которой я нажал кнопку, например при 90% нажал её- и она мигает с яркостью 90%
#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
volatile uint8_t c=0;
volatile uint8_t d=0;
volatile uint8_t test=0;
volatile uint8_t testt=0;
int main()
{
DDRD|=1<<5;
PORTD|=1<<4;
TCCR0B|=(0<<CS02)|(1<<CS01)|(0<<CS00);
TIMSK0|=1<<TOIE0;
sei();
for(;;)
{

}
}//end main
ISR(TIMER0_OVF_vect)
{
if (++d<50)
{
if ((PIND&(1<<4))==0)
{
if (++test)
{
PORTD|=(1<<5);
_delay_ms(50);
PORTD&=~(1<<5);
_delay_ms(50);
}
}
else
{
if (d<test)
{
PORTD|=1<<5;
}
else
{
PORTD&=~(1<<5);
}
}
}
else
{
d=0;
if (++c==5)
{
if (testt==0)
{
if (++test==50)
{
testt=1;
}
}
else
{
if (--test==0)
{
testt=0;
}
}
c=0;
}
}
}


Последний раз редактировалось Asawis 06 мар 2018, 16:08, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка,удерживающая уровень яркости светодиода
СообщениеДобавлено: 06 мар 2018, 15:40 
Старожил

Зарегистрирован: 21 янв 2015, 16:19
Сообщения: 529
Asawis, Вам нужно готовое решение? Я сильно сомневаюсь, что кто-то будет ковыряться в этих test, testt и прочих переменных...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка,удерживающая уровень яркости светодиода
СообщениеДобавлено: 06 мар 2018, 15:48 
Старожил
Аватара пользователя

Зарегистрирован: 14 апр 2014, 11:06
Сообщения: 1399
Откуда: Курск
Asawis писал(а):
Здраствуйте ... как заставить кнопку мигать, но ...

Кнопки не мигают (КО)
Код не читаемый
ШИМом (лучше аппаратным) задаёте яркость, в цикле включаете/выключаете ШИМ
Программно: два вложенных один в другой цикла
Кнопка


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка,удерживающая уровень яркости светодиода
СообщениеДобавлено: 06 мар 2018, 15:52 
Заглядывает иногда

Зарегистрирован: 06 мар 2018, 15:22
Сообщения: 40
remontsofta писал(а):
Asawis, Вам нужно готовое решение? Я сильно сомневаюсь, что кто-то будет ковыряться в этих test, testt и прочих переменных...

Не обязательно, желательно пример какой-нибудь, лично я ничего подобного не нашел, только просто программный ШИМ и кнопку раздельно, а чего ковыряться то, переменные c,test,testt-настройка ШИМ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка,удерживающая уровень яркости светодиода
СообщениеДобавлено: 06 мар 2018, 16:09 
Заглядывает иногда

Зарегистрирован: 06 мар 2018, 15:22
Сообщения: 40
Cthulhu писал(а):
Asawis писал(а):
Здраствуйте ... как заставить кнопку мигать, но ...

Кнопки не мигают (КО)
Код не читаемый
ШИМом (лучше аппаратным) задаёте яркость, в цикле включаете/выключаете ШИМ
Программно: два вложенных один в другой цикла
Кнопка

на сайте только только зарегистрировался, вроде как прикрепил файл атмела,но сам не вижу где он прикрепился)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB