кто разбирается в коде посмотрите хоть что то я правильно сделал или нет.#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;
}
}
Шим регулятор яркости светодиодов на atmega8
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
пару дней уже сижу разбираюсь с написанием прошивки, так до конца и не пойму принцип опроса энкодера, вообщем вот что примерно смог изобразить
- Реклама
- Сообщения: 100
- Зарегистрирован: Пт авг 02, 2013 07:20:04
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
не знаю не пробовал,но мне почему то кажется что там что то не правильноtitoFF писал(а):а в протеусе работает?
- Сообщения: 100
- Зарегистрирован: Пт авг 02, 2013 07:20:04
ну так надо проверить в работе, сразу все ясно станет. На первых порах протеус очень помогает. И ещё- не надо цитировать сообщение, если оно предыдущее, за это могут наказать.
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Не надо цитировать сообщение целиком, смысл в этом.не надо цитировать сообщение, если оно предыдущее
Последний раз редактировалось YS Чт сен 05, 2013 18:08:14, всего редактировалось 1 раз.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Реклама
- Сообщения: 100
- Зарегистрирован: Пт авг 02, 2013 07:20:04
П.С. Когда копируете исходный код в форум, пользуйтесь тегом code, он так намного лучше воспринимается.
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
возникло пару вопросов, как правильно описать условие для цикла со вторым режимом, т.е. чтобы цикл второй цикл выполнялся только когда кнопка зажата? и второй это как в программе указывается на каком порте вывода мы изменяем значения?
Нифига подобного, если только не писать каждый раз =phptitoFF писал(а):П.С. Когда копируете исходный код в форум, пользуйтесь тегом code, он так намного лучше воспринимается.
Код: Выделить всё
[code=php]
#define c 5
main ();На выходе так:
Код: Выделить всё
#define c 5
main (); - Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
Вообщем с прошивкой более менее разобрался, но как всегда возник другой вопрос, на схеме у меня всего один диод и с ним все понятно, но вот вопрос как все сделать если вместо диода будет кусок диодной ленты и тут тоже бы вроде еще все более менее просто, подключаем постоянный источник +12 и через транзистор на минус шим, но вот что делать если нет возможности подключить шим на минус?
Да хоть как можно включать можно и минус напрямую, а плюс через транзистор. главное чтобы схема включения была подходящая. Транзистор то какой?
И где же готовая прошивка? интересно посмотреть.
И где же готовая прошивка? интересно посмотреть.
В поисках истины человек развивается.
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
я понимаю что без разниц, но как подключить вывод мк к плюсу диодной ленты на которую нужно 12 в? как все соберу, если заоаботает тогда и выложу прошивку
p.s. Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
p.s. Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
- Сообщения: 100
- Зарегистрирован: Пт авг 02, 2013 07:20:04
Специфика технических форумов. Здесь могут только пнуть в нужном направлении.Naman_S писал(а):Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
- Сообщения: 100
- Зарегистрирован: Пт авг 02, 2013 07:20:04
http://www.getchip.net/posts/062-kak-po ... -nagruzku/Naman_S писал(а):как подключить вывод мк к плюсу диодной ленты на которую нужно 12 в?
http://sxemy.103mb.ru/poleviki/39-podkl ... lleru.html
Может нужно конкретнее вопросы задавать.Naman_S писал(а):p.s. Каждый раз задаю тут вопрос, но ни на один не получил конкретного ответа
Ваше >> (но вот что делать если нет возможности подключить шим на минус?)
можно по разному понять.
а вот( Подскажите схемку для подключения ленты для подачи +12в шим с помощью полевого транзистора). уже будет точнее ответ.
И если задают уточняющие вопросы, то можно бы и ответить.Вдруг следующий ответ будет конкретным.
Ps. сообщений всего 14, а уже жаловаться, что ни одного конкретного ответа не получил.Как то странно выглядит. Никто никому ничего не обязан. Все на посильной помощи.
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
думаю все мои вопросы достаточно понятны, и в вопросе про подключение я не имел обязательно ввиду транзистор, вопрос был именно кто как знает это можно сделать, хоть с помощью молотка и лома, так что не нужно говорить про не точность вопросов, а по поводу 14 сообщений и что из этого, т.е. про то что никто ничего конкретного не написал нужно было упомянуть только после 2000 сообщений
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
- Сообщения: 60
- Зарегистрирован: Пн авг 26, 2013 23:24:01
vitalik_1984 может я конечно что то не понимаю, но сколько не пробую собирать такие схемки в протеусе нифига не работает, тупо идет 12 в и все, поэтому и спрашиваю, если можешь собери подобную рабочую схемку в протеусе и скинь, может я где то косячу
Я для чего две недели назад спрашивал какой нужен транзистор полевой или обычный, для того, чтобы можно было посоветовать схему.
А в ответ кувалдой и зубилом
Можно ведь обычный применить или полевой. Транзистор обычный легче подключать, но есть недостатки- не очень большой ток, к примеру.
Можно применить полевой транзистор, но для мощных полевых транзисторов нужен драйвер.
А в ответ кувалдой и зубилом
Можно ведь обычный применить или полевой. Транзистор обычный легче подключать, но есть недостатки- не очень большой ток, к примеру.
Можно применить полевой транзистор, но для мощных полевых транзисторов нужен драйвер.


