Страница 2 из 6

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 16:00:00
Naman_S
пару дней уже сижу разбираюсь с написанием прошивки, так до конца и не пойму принцип опроса энкодера, вообщем вот что примерно смог изобразить
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/eeprom.h>
unsigned char my_y;

EEMEM uint16_t ee_zn, ee_zns; /* переменная размером в 2 байта в EEPROM
volatile char pwm_counter,my_y,button1, button = 0;

// Обработчик прерывания int0
ISR(SIG_INTERRUPT0)
{_delay_us(50);
if((PIND & (1 << PD2))==0)
{_delay_us(50);
if((PIND & (1 << PD0))==0)
}
GIFR = (1< 63)
{
PORTB = 0x00;
pwm_counter = 0;
}
if (pwm_counter > my_y) PORTB |= (1 << PB0);
}



// Главная функция

int main (void)
{
DDRB |= (1 << PB0); // выходы
PORTB = 0x00;
DDRD |= (0 << PD3)|(0 << PD2)|(0 << PD1)|(0 << PD0); // входы
PORTD |= (1 << PD2)|(1 << PD1)|(1 << PD0)|(1 << PD3); // подключаем подтягивающие резисторы
TIMSK |= (1 << TOIE0); // разрешение прерывания по таймеру0
TCCR0 |= (1 << CS00);

MCUCR |= (0 << ISC00)|(1 << ISC01); // прерывание по заднему фронту INT0(по спаду импульса)

GIFR |= (1 << INTF0); // очищаем флаг внешнего прерывания
GICR |= (1 << INT0); // разрешаем внешние прерывания INT0
sei(); //глобально разрешаем прерывания

while(1) // первый режим

{

my_y = eeprom_read_byte(&ee_zn); // считали значение из EEPROM
{ my_y--; if(my_y < 1) my_y = 1; }

else

{ my_y++;}

if((PIND & (1 << PD1))==0) // если нажата кнопка энкодера
{
while((PIND & (1 << PD1))==0){} // ждем отпускания кнопки энкодера
eeprom_write_byte(&eeprom_var, ee_zn ); // записываем 1 значение в EEPROM;

}

while(2) ((PIND & (1 << PD3))==0) //второй режим пока нажата кнопка
{

my_y = eeprom_read_byte(&ee_zns); // считали 2 значение из EEPROM
{ my_y--; if(my_y < 1) my_y = 1;}

else

{ my_y++; }

if((PIND & (1 << PD1))==0) // если нажата кнопка энкодера
{
while((PIND & (1 << PD1))==0){} // ждем отпускания кнопки энкодера
eeprom_write_byte(&eeprom_var, ee_zns ); // записываем 2 значение в EEPROM;

}
}
кто разбирается в коде посмотрите хоть что то я правильно сделал или нет.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 16:25:34
titoFF
а в протеусе работает?

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 16:55:12
Naman_S
titoFF писал(а):а в протеусе работает?
не знаю не пробовал,но мне почему то кажется что там что то не правильно

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 18:04:49
titoFF
ну так надо проверить в работе, сразу все ясно станет. На первых порах протеус очень помогает. И ещё- не надо цитировать сообщение, если оно предыдущее, за это могут наказать.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 18:07:51
YS
не надо цитировать сообщение, если оно предыдущее
Не надо цитировать сообщение целиком, смысл в этом.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 18:08:02
titoFF
П.С. Когда копируете исходный код в форум, пользуйтесь тегом code, он так намного лучше воспринимается.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 19:18:21
Naman_S
возникло пару вопросов, как правильно описать условие для цикла со вторым режимом, т.е. чтобы цикл второй цикл выполнялся только когда кнопка зажата? и второй это как в программе указывается на каком порте вывода мы изменяем значения?

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Чт сен 05, 2013 21:30:31
vitalik_1984
titoFF писал(а):П.С. Когда копируете исходный код в форум, пользуйтесь тегом code, он так намного лучше воспринимается.
Нифига подобного, если только не писать каждый раз =php

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

 
[code=php]
#define c 5
 main ();
[/code]
На выходе так:

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

#define c 5
 main (); 

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пт сен 06, 2013 17:22:46
Naman_S
Вообщем с прошивкой более менее разобрался, но как всегда возник другой вопрос, на схеме у меня всего один диод и с ним все понятно, но вот вопрос как все сделать если вместо диода будет кусок диодной ленты и тут тоже бы вроде еще все более менее просто, подключаем постоянный источник +12 и через транзистор на минус шим, но вот что делать если нет возможности подключить шим на минус?

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пт сен 06, 2013 21:40:59
vitalik_1984
Да хоть как можно включать можно и минус напрямую, а плюс через транзистор. главное чтобы схема включения была подходящая. Транзистор то какой?
И где же готовая прошивка? интересно посмотреть.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пт сен 06, 2013 21:51:00
Naman_S
я понимаю что без разниц, но как подключить вывод мк к плюсу диодной ленты на которую нужно 12 в? как все соберу, если заоаботает тогда и выложу прошивку

p.s. Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Сб сен 07, 2013 18:28:40
titoFF
Naman_S писал(а):Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
Специфика технических форумов. Здесь могут только пнуть в нужном направлении.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Вс сен 08, 2013 12:26:38
Naman_S
Это специфика этого форума а не всех технических

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пн сен 09, 2013 07:29:33
titoFF
Naman_S писал(а):как подключить вывод мк к плюсу диодной ленты на которую нужно 12 в?
http://www.getchip.net/posts/062-kak-po ... -nagruzku/
http://sxemy.103mb.ru/poleviki/39-podkl ... lleru.html

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пн сен 09, 2013 15:36:14
vitalik_1984
Naman_S писал(а):p.s. Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
Может нужно конкретнее вопросы задавать.
Ваше >> (но вот что делать если нет возможности подключить шим на минус?)
можно по разному понять.
а вот( Подскажите схемку для подключения ленты для подачи +12в шим с помощью полевого транзистора). уже будет точнее ответ.
И если задают уточняющие вопросы, то можно бы и ответить.Вдруг следующий ответ будет конкретным.

Ps. сообщений всего 14, а уже жаловаться, что ни одного конкретного ответа не получил.Как то странно выглядит. Никто никому ничего не обязан. Все на посильной помощи.

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Пн сен 09, 2013 17:04:57
Naman_S
думаю все мои вопросы достаточно понятны, и в вопросе про подключение я не имел обязательно ввиду транзистор, вопрос был именно кто как знает это можно сделать, хоть с помощью молотка и лома, так что не нужно говорить про не точность вопросов, а по поводу 14 сообщений и что из этого, т.е. про то что никто ничего конкретного не написал нужно было упомянуть только после 2000 сообщений

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Вт сен 24, 2013 08:41:57
Naman_S
Вопрос с управлением через плюс все еще не решен

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Вт сен 24, 2013 09:51:19
vitalik_1984
Так слабо?
Вот конкретно:тема

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Вт сен 24, 2013 10:18:19
Naman_S
vitalik_1984 может я конечно что то не понимаю, но сколько не пробую собирать такие схемки в протеусе нифига не работает, тупо идет 12 в и все, поэтому и спрашиваю, если можешь собери подобную рабочую схемку в протеусе и скинь, может я где то косячу

Re: Шим регулятор яркости светодиодов на atmega8

Добавлено: Вт сен 24, 2013 12:04:36
vitalik_1984
Я для чего две недели назад спрашивал какой нужен транзистор полевой или обычный, для того, чтобы можно было посоветовать схему.
А в ответ кувалдой и зубилом :facepalm:
Можно ведь обычный применить или полевой. Транзистор обычный легче подключать, но есть недостатки- не очень большой ток, к примеру.
Можно применить полевой транзистор, но для мощных полевых транзисторов нужен драйвер.