Перейти к содержанию

Нужна помощь с АTTiny13


Рекомендуемые сообщения

Здравствуйте, помогите пожалуйста с програмкой для ATTiny13. Я с микроконтроллерами  только начинаю , в программировании пока слабоват.

Надо чтобы при нажатии на кнопку засветился на 20 секунд светодиод VD1 и звукоизлучатель 2 раза пикнул частотой 100ms, а при отпускании  кнопки погас светодиод VD1 и загорелся на 20 секунд светодиод VD2.

Схема:

IMG_20161202_152300.jpg

Вот програмка которую попробовал сделать, но думаю она фиговенькая, как сделать задержки незнаю(((

123.png

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 90
  • Создана
  • Последний ответ

Топ авторов темы

Такое очучение что вы даже не старались чего либо написать. 

Вы точно не тролик?

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я вам позже скину код, примерно того как вы описали в первом посте. 

И не совсем понятно почему подтяжка на рб1 а вы туда записываете 0х09?)))ещё и через операцию или))

это что-то новое

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

в вашем варианте лучше использовать прерывания таймера. Попробуйте сделать прерывание на 100 млсек, а потом используя счётчик вхождений в прерывание и устанавливая и сбрасывая флаги, сформируйте задержку 20 сек. Дальше, думаю, станет более понятно, как реализовать алгоритм.

Ссылка на комментарий
Поделиться на другие сайты

чегой-то я не совсем понял вашу задумку, как так при нажатии загорается на 20 секунд и потом вы пишите при отпускании чтоб переключился. тоесть кнопка длжна быть удержана? а если она более 20сек будет удерживаться?

давайте ка алгоритм поточнее 

или расскажите что это в итоге за устройство должно почится

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Да, 20 секунд выдержки в один присест тут не получится сделать - иначе не сможем одновременно следить за нажатием кнопки. Но и без прерываний можно обойтись - организовать бесконечный цикл - в начале задержка на 100мс и опрос кнопки(считать с порта и сохранить во временную переменную - это ОЧЕНЬ важно дабы избежать неопределённого поведения), затем(записываешь уже алгоритм на листочке бумаги?) смотрим на сохранённое состояние кнопки - если она нажата - то инкрементируем одну переменную-счетчик, а вторую переменную-счетчик(которая отвечает за счет времени отключения) обнуляем, если она меньше 200 и включаем первый светодиод, если она больше 200 - воспроизводим "двойной бип-бип" и выключаем первый светодиод, присваиваем переменной значение 201 - это гарантирует что бип-бип будет только один раз.
Потом, идём по ветке ELSE - там где кнопка не нажата - если второй счетчик меньше 200 - инкрементируем второй счетчик, выключаем первый светодиод и включаем второй светодиод. Если больше 200 - ничего не инкрементируем, выключаем оба светодиода.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Обычная машина состояний. Элементарная задача. 
 

Ну а новичку - самое то, мозгами пошевелить. Как раз, задачка для новичка, по типу "поморгать светодиодом" и "опросить кнопочку"...


 

Ссылка на комментарий
Поделиться на другие сайты

Может не так изложил мысль. Сейчас объясню. Устройство это "сигнализатор поклевки". Конструктив, есть колесико с магнитами которое при вращении замыкает/размыкает контакт геркона(у меня в схеме указан как кнопка). Так вот когда магнит подходит к геркону замыкается контакт и должен загорается светодиод VD1(и гореть 20сек)и одновременно с загоранием светодиода VD1 , буззер должен прозвучать пик-пик. Когда магнит сходит с геркона , гаснет VD1 (даже если не прошло 20 сек)и загорается светодиод VD2 и горит в течении 20сек, пока контакт геркона опять не замкнется. Задержки выключения нужны чтобы определить какой из сигнализаторов сработал (допустим их 3)и успеть подбежать и подсечь рыбу, бузер служит для звукового оповещения. То есть светодиод VD1 и бузер срабатывают одновременно по переднему фронту, а VD2 загорается по заднему фронту. В состоянии спокойствия ничего не горит и не пищит, как только рыба клюет , колесико начинает вращаться ,сигнализатор начинает пищать и светится.)))

Ссылка на комментарий
Поделиться на другие сайты

Да причём тут светодиоды, пусть неправильно, не в них суть. У ТС проблема с написанием кода(синтаксис хромает). 

ТС я понял чего вы хотите, делеями тут не помочь. Нужно осваивать таймеры

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Можно заюзать всего один делей, в основном цикле, на 100 мс. и сделать машину состояний, как уже предложили выше.
Задача элементарная и решается без всяких таймеров.
 

Ссылка на комментарий
Поделиться на другие сайты

Впрочем да.  Я просто про то, что организовать машину состояний правильно-гораздо труднее для новичка чем сделать часики на таймере.

в переменных запутается

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

На таймере получится точно та же машина состояний, с неявным бесконечным циклом. Лишняя сложность и абстракция уводящая от сути алгоритма. Там для новичка только таймер настроить будет огромная проблема, подобрать необходимый режим работы таймера, который ещё и разбросан по нескольким регистрам... УХ!

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

У меня вопрос чисто по принципу детекции клева.

Колесико с магнитами на инерционную катушку крепится что-ли или как? А то я се такие устройства представлял на принципе улавливания вибрации удилища. Или замыкания контакта при изгибе кивка.

Изменено пользователем Microchip

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

22 часа назад, Microchip сказал:

У меня вопрос чисто по принципу детекции клева.

Колесико с магнитами на инерционную катушку крепится что-ли или как? А то я се такие устройства представлял на принципе улавливания вибрации удилища. Или замыкания контакта при изгибе кивка.

Cигнализатор стоит на подставке, после заброса удочку ставим на сигнализатор леской на колесико. когда рыба клюет колесико вращается и сигнализатор пищит и светится.

Ссылка на комментарий
Поделиться на другие сайты

Хм. Интересная конструкция.

А фотку можно, посмотреть сего приспособления или рисунок чтоб попонятней?

Т.е. по рыба клюет идут импульсы с геркона?

Может ли быть что геркон был замкнут когда рыба не клюет?

Не пойму зачем два светодиода. Во всех конструкциях что я видел светодиод от один. Горит несколько секунд когда рыба клюнула.

Хочу тоже нечто подобное себе сделать. Но не сильно знаком с методикой их применения. Может быть на речке с течением попроще будет.

С кодом могу помочь. Но на ASM-е.

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Никогда не включайте нагрузку в цепь эмиттера транзистора, управляемого от МК - используйте классический ключ, т.е. нагрузка в цепи коллектора.

Если конструкция с батарейным питанием и выполнена компактно, то резистор с PB0 не нужен, но нужно обязательно настроить порт в режим ВХОДА с ПОДТЯЖКОЙ, т.е. DDRB &= ~(1<<PB0); PORTB |= (1<<PB0);

 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, ARV сказал:

Никогда не включайте нагрузку в цепь эмиттера транзистора, управляемого от МК - используйте классический ключ, т.е. нагрузка в цепи коллектора.

Если конструкция с батарейным питанием и выполнена компактно, то резистор с PB0 не нужен, но нужно обязательно настроить порт в режим ВХОДА с ПОДТЯЖКОЙ, т.е. DDRB &= ~(1<<PB0); PORTB |= (1<<PB0);

 

Это случайно, голова забита программной частью

 

IMG_20161202_152300.jpg

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...