Управление нагрузками одной кнопкой.
- Сообщения: 86
- Зарегистрирован: Пт фев 17, 2012 20:51:12
люди добрые, сделайте пожайлуста .hex , пытался сам сделать AVR Studio ошибки выдает.
- Реклама
Это можно реализовать на простой логике 561 серии, к примеру.Боюсь, другие МК не потянут такую задачу
Для МК это не проблема.
Всё можно наладить,если вертеть в руках достаточно долго!
- Сообщения: 86
- Зарегистрирован: Пт фев 17, 2012 20:51:12
спасибо.
error: Cannot find include file: util/delay.h
error: Cannot find include file: avr/io.h
error: char: Unknown instruction or macro
error: BtnGet: Unknown instruction or macro
error: syntax error, unexpected '('
error: Cannot find include file: util/delay.h
error: Cannot find include file: avr/io.h
error: char: Unknown instruction or macro
error: BtnGet: Unknown instruction or macro
error: syntax error, unexpected '('
- Сообщения: 882
- Зарегистрирован: Ср фев 22, 2012 01:25:21
- Реклама
Неужели ? Буду знать, спасибоublhjnt писал(а):Для МК это не проблема.
"не проблема" - только если не использовать для этого операционную систему и фреймворки... а так да, задача выполнима только на PIC32... в другие просто операционка не влезет.
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
shads, подскажите, а как правильно исправить код, чтобы первое нажатие включается первая нагрузка, второе нажатие включается вторая нагрузка, третье нажатие включается и первая, и вторая нагрузка.
Мои размышления меня привели вот к такому
И вопрос по фьюзам, оставить по умолчанию?
Мои размышления меня привели вот к такому
Код: Выделить всё
if (LedPORT & LedLine1)
LedPORT = LedLine2;
if (LedPORT & LedLine2)
LedPORT = LedLine1;
LedPORT = LedLine2;
if (LedPORT & LedLine1 & LedLine2)
LedPORT = LedLine1;Написал свой вариант, проверяйте… тини13 тактируется на заводских установках (1,2 МГц), прошивать фьюзы не нужно. РВ1 (6) – это первая нагрузка, РВ2 (7) – это вторая нагрузка. Кнопка на РВ0 (5). Между выводом 1 и 8 поставьте резистор на 10 кОм.
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
Самсусамыч, первое нажатие загорается первая нагрузка, второе нажатие первая и вторая нагрузка, третье нажатие выключаются нагрузки. Совсем не то...
Мне бы сначала первую, потом вторую, потом первую и вторую вместе. И так по кругу, а долгое нажатие уже выключение.
Мне бы сначала первую, потом вторую, потом первую и вторую вместе. И так по кругу, а долгое нажатие уже выключение.
Так после второго нажатия и так уже включены обе нагрузки. Чот я не пойму логики…
Или при втором нажатии первая нагрузка должна отключатся?
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
Да, после второго нажатия первую отключать.
Первое нажатие - включаем первую нагрузку, вторая выключена.
Второе нажатие первая выключается, вторая включается
Третье нажатие - включаем все нагрузки.
Следующие нажатия по кругу повторят этот цикл.
Выключение по удержанию кнопки.
Я бы еще код посмотрел, для развития... Т.к. не могу откомпилировать код в avr studio, у меня hex слишком большого размера получается. Да и неправленый код виликоват выходит.
Первое нажатие - включаем первую нагрузку, вторая выключена.
Второе нажатие первая выключается, вторая включается
Третье нажатие - включаем все нагрузки.
Следующие нажатия по кругу повторят этот цикл.
Выключение по удержанию кнопки.
Я бы еще код посмотрел, для развития... Т.к. не могу откомпилировать код в avr studio, у меня hex слишком большого размера получается. Да и неправленый код виликоват выходит.
Вот так и надо подробно расписывать алгоритм. Чтобы не додумывать…
Мой исходник для Вас будет непонятен… пишу на Algorithm Builder 
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
Спасибо, все работает как надо. Единственно задержка нажатия долгая, примерно 5 секунд, а можно уменьшить до 2?
Добавлено after 2 minutes 51 second:
И еще заметил, что при нажатии удержания на выключение происходит переключение на следующий режим. Можно сделать короткое нажатие на отпускание клавиши?
Добавлено after 2 minutes 51 second:
И еще заметил, что при нажатии удержания на выключение происходит переключение на следующий режим. Можно сделать короткое нажатие на отпускание клавиши?
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
Самсусамыч, великолепно! Вы прям волшебник, теперь работает как и задумывалось.
ps посмотрел алгоритм билдер, вроде ничего сложного, если исходники не тайна, я бы посмотрел и по изучал.
ps посмотрел алгоритм билдер, вроде ничего сложного, если исходники не тайна, я бы посмотрел и по изучал.
Исходник не тайна, такое не может быть тайной…
я не являюсь программистом – это хобби… так что учится по моим программам не советую…
это ещё те "шедевры"…
учится нужно у профессионалов… 
Исходник на АВ:
Исходник на АВ:
- Сообщения: 1405
- Зарегистрирован: Вт июн 07, 2011 08:03:18
Ой, не видели вы ещё исходники у профессионалов. Иной раз просто диву даёшься.(
- Сообщения: 73
- Зарегистрирован: Ср июн 17, 2015 20:20:44
Вот и снова я вернулся в эту тему.
Подскажите, у нас свободно еще два вывода pb3 и pb4, можно на них повешать кнопки для увеличения и уменьшения яркости? Естественно диоды подключаются через n канальные транзисторы. И добавить память режима яркости.
Подскажите, у нас свободно еще два вывода pb3 и pb4, можно на них повешать кнопки для увеличения и уменьшения яркости? Естественно диоды подключаются через n канальные транзисторы. И добавить память режима яркости.
Теоретически можно, а вот практически необходимо пробовать. Ознакомился с темой… и как я понял используется МК тини13 у которой всего один таймер, а значит и аппаратный ШИМ можно организовать только один. Хотя конечно можно написать и программный ШИМ, но могут по ходу возникнуть некие ограничения. Непонятен (не описан подробно) алгоритм выбора той или иной яркости для каждого канала, а так же какая градация (минимальный, разовый изменённый уровень) должна быть при установке уровня яркости? В общим хорошо бы узнать подробные хотелки в плане регулирования и нужно ли уровень яркости сохранять в EEPROM на случай полного обесточивания девайса. А то ведь перезапись EEPROM имеет ограниченный ресурс.


