Страница 4 из 6
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт сен 27, 2013 20:20:36
vitalik_1984
Вот так нужно было:
Спойлер
Код: Выделить всё
while((PIND&(1 << PD4))==0)
{
button = 0;
_delay_ms(10);
//my_y = eeprom_read_byte(&ee_zn); // считали значение из EEPROM
_delay_ms(100);
if((PIND & (1 << PD1))==1) // если нажата кнопка энкодера
{
while((PIND&(1 << PD1))==0){} //ждем отпускания кнопки
//eeprom_write_byte(&ee_zn, my_y ); // записываем 1 значение в EEPROM;
_delay_ms(100);
}
}
while((PIND&(1 << PD4))==1)
{
button = 1;
_delay_ms(10);
//my_b = eeprom_read_byte(&ee_zns);
_delay_ms(100);// считали 2 значение из EEPROM
if((PIND & (1 << PD1))==1) // если нажата кнопка энкодера
{
while((PIND&(1 << PD1))==0){} // ждем отпускания кнопки
//eeprom_write_byte(&ee_zns, my_b );// записываем 2 значение в EEPROM;
_delay_ms(100);// ждем отпускания кнопки энкодера
}
}
А portb=0xFF это я для примера привел, (считаем, что нужно изменить состояние порта внутри этих циклов).
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт сен 27, 2013 21:32:09
Naman_S
со скобками уже понял, но вот кто подскажет на счет записи яркости, даже если просто добавляю в циклах строки где присваиваю переменным любое значение, программа работает не пойми как
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 13:52:42
vitalik_1984
Нынешний код в студию

Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 14:25:49
Naman_S
код пока тот же, что с записью и чтением переменных так я и не понял, а времени разобраться пока нет, дней пять уже до компа дойти не могу
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 15:56:31
vitalik_1984
Ну с этим же кодом вы просто убьете свою ЕЕПРОМ память. Если в цикле нажатой кнопки будет всегда производиться запись в нее.
Может лучше придумать алгоритм работы самого устройства. А потом уже его осуществлять в самой программе? Таким образом расширяя свои познания в данной области.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 17:58:12
Naman_S
да нет запись будет не частая, режимы будут работать по длительному времени, зажатая кнопка это просто грубо говоря я просто так для удобства назвал, если все будет нормально, то запись в епром думаю будет не чаще чем раз в месяц, ну может чуть чаще, думаю при такой частоте записи епром проживет довольно долго
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 19:17:08
vitalik_1984
Алгоритм работы устройства составьте и наброски кода. Будем думать вместе.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пт окт 04, 2013 19:20:05
Naman_S
хорошо, завтра как попаду к компьютеру все опишу
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Пн окт 14, 2013 21:45:50
Naman_S
в последнее время катастрофически не хватает времени, вот вообщем общий алгоритм и задумка этого устпойства, как и все в наше время я решил переделать подсветку в своем авто, ну и к этому еще решил добавить регулировку яркости и второй режим, ну и алгоритм работы такой включаем зажигание включается наше устройство и начинает работать первый режим, тут мы регулируем яркость с помощью энкодера, и далее нажимаем на кнопку энкодера и наша яркость запоминается, далее включаем свет и включается второй режим и тут все тоже замое, вот именно это включение света я и подразумевал под зажатие кнопки.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 04:35:45
titoFF
Допустим на пинд.1 у нас висит свет авто. При появлении на нем 1- свет включен.
Псевдокод:
while(1==PIND.1)
{
//здесь программа будет крутиться, пока включен свет
}
while(0==PIND.1)
{
//здесь, пока не включен
}
в этих циклах можешь опрашивать энкодер, кнопки, взводить флаг режима и прочее. Можно сделать прерывание по переполнению таймера, а в прерывании проверять флаг режима и присваивать значение переменной текущего режима в регистр сравнения шим. Переменную для каждого режима надо будет свою. Вариантов масса. Пищу для размышления дал, дальше сам.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 05:41:23
titoFF
А почему мега8? Для этих целей тиньки хватит. На меге тогда rgb делай, один канал мегой регулировать всё равно, что кировцем игрушечную машинку на буксире тянуть.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 06:48:58
Naman_S
пока с этим надо разобраться, а потом конечно схемка претерпит изменения, но это все потом
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 09:00:34
titoFF
Вообще- советую программный ШИМ освоить. Очень даже недурно выходит. На тиньке до 6 выводов можно ШИМить. А это 2 rgb канала.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 09:15:01
Naman_S
примеров с кодом шима много и с ним проблем не очень много,щас у меня проблема с записью переменных в епром
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 09:39:42
titoFF
В какой среде пишете? Какие проблемы с еепром?
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 10:02:56
titoFF
Прочитал какие. Так надо ведь код выложить и проект в протеусе или схему. Сейчас что- то подсказывать- всё равно, что пальцем в небо тыкать. Одному вам известно, что у вас в коде.
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Ср окт 16, 2013 10:31:40
Naman_S
Пишу в винавр на си, а проблемы описаны выше
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Сб окт 26, 2013 09:31:47
Naman_S
Вот схемка
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Вс окт 27, 2013 20:29:03
vitalik_1984
Ну и что там за двести выключателей? Мы должны теперь догадаться как это все должно работать?
Re: Шим регулятор яркости светодиодов на atmega8
Добавлено: Вс окт 27, 2013 22:08:36
Naman_S
ну думаю там все понятно, есть кнопка- это кнопка энкодера, есть переключатель который весит на пд4 это и есть условный выключатель второго режима, а два остальных это я просто для удобства себе делал, можно просто без них энкодер туда сюда нажимать