Программирование микроконтроллеров avr для начинающих

Поділитися
Вставка
  • Опубліковано 17 лис 2024

КОМЕНТАРІ • 140

  • @Techn0man1ac
    @Techn0man1ac 9 років тому +10

    Класс. Сюда бы ещё запоминание в энергонезависимой памяти состояния добавить и будет вообще супер.

  • @SergeyBelotserkovskiy
    @SergeyBelotserkovskiy 9 років тому +2

    Надо сказать что у кнопок есть такое явление как дребезг контактов. Время стабилизации контакта может быть несколько милисекунд, это нужно учитывать. Также учитывать расстояние от контроллера до кнопки, при внутреннем подтягивающем резисторе оно должно быть минимально, при внешнем резисторе до метра, а если несколько метров, то подключать через оптическую развязку или другими способами.

  • @ОлегСмыслов-л8д
    @ОлегСмыслов-л8д 9 років тому +7

    Урааа ! Дождались очередного видео урока . Спасибо Вам за видео.

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 років тому

    нужно вводить _delay_ms(20) иначе ибудет срабатывать спасибо автору грамотный человек

  • @ЕвгенийР-ц2ф
    @ЕвгенийР-ц2ф 9 років тому +2

    Надеюсь Александр Николаевич народ который не видел предыдущие видео и задающий тупые вопросы о которых уже не однократно было сказано, не отобьет у вас желание снимать уроки. С нетерпением жду продолжения!

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Евгений Р Вопросов очень много в основном одни и теже. Времени мало, а уроки то посложнее становятся :)

  • @sv-avtomatika
    @sv-avtomatika 9 років тому

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

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +2

      Сергей Ворошилов Та я сам не претендую на мега разработчика:) Учитывая что я самоучка, многое сам не знаю и также сам как у других так и самостоятельно чего то изучаю.

    • @ПетрПетров-щ9ф
      @ПетрПетров-щ9ф 9 років тому

      +Сергей Ворошилов
      Ардуино так влияет. Это вообще не програмирование.

    • @sv-avtomatika
      @sv-avtomatika 9 років тому

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

    • @ПетрПетров-щ9ф
      @ПетрПетров-щ9ф 9 років тому +2

      +Сергей Ворошилов
      А вот почему банкоматы такие тормознутые.

  • @nart658
    @nart658 6 років тому +1

    молодец хорошый контент
    P.S. ПРОДОЛЖАЙ В ТОМЖЕ ДУХЕ ; > )

  • @ПетрПетров-щ9ф
    @ПетрПетров-щ9ф 9 років тому +5

    Сильно мудрёный огород для новичков.
    Для чего вы проверяете состояние порта, подключенного к светодиоду ?
    Какая нам разница в каком он состоянии, его просто нужно постоянно инвертировать. Тогда программа упрощается до:
    проверка на нажатие - инверсия состояния порта светодиода - проверка на отжатие - и в начало.
    Вышеописанное - модификация обычной мигалки, только delay нету и добавлены проверки порта на отжатие/нажатие

    • @trgsdvtr
      @trgsdvtr 9 років тому

      Петр Петров я бы ещё добавил два считывания кнопки с задержкой между ними - и защита от дребезга, и от помех.

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      Петр Петров Были вопросы как определить состояние порта и т.д. Я же в начале видео все объяснил что вопросы которые возникают я постарался в данном примере одним махом ответить на них.

    • @ПетрПетров-щ9ф
      @ПетрПетров-щ9ф 9 років тому

      Вопросы по обработке тактовой кнопки c запоминанием отжатия/нажатия и определение логического состояния порта - это, как бы, разные вопросы по смыслу.
      Так что, на мой взгляд, - это должно быть два отдельных видео или более.
      Иначе получаются более запутанные примеры для понимания принципа.

  • @Ал1-в2ю
    @Ал1-в2ю Рік тому

    Здравствуйте планирую начать освоение программирование микроконтроллеров. Планирую купить несколько микроконтроллеров attyni 13 и несколько других более мощных avr. Также скачал и начинаю разбираться в ПО flowcode и proteus. Прошу подскажите что нужно докупить из аппаратных вещей для прошивки контролееров. А также на какое ПО дополнительно обратить внимание? В конечном счете планирую начпть повторять готовые проекты с каналов и таким образом учится. Благодарю.

  • @AndreyBog111
    @AndreyBog111 9 років тому

    ОТВЕТТЕ ПОЖАЛУЙСТА!:
    1. ВОЗМОЖНО ЛИ ПОМЕСТИТЬ ПРОГРАММУ В КОНТЕЙНЕР-ДЛЯ-ПРОГРАММЫ ТАК, ЧТОБЫ КОНТЕЙНЕР УПРАВЛЯЛ ВЫДЕЛЕНИЕМ ОЗУ ПРОГРАММЕ В КОНТЕЙНЕРЕ?
    ВОЗМОЖНО ЛИ СДЕЛАТЬ ЧТОБЫ ЛЮБУЮ ПРОГРАММУ МОЖНО БЫЛО ПОМЕСТИТЬ В КОНТЕЙНЕР(как желток в белок и скарлупу) КОТОРЫЙ АВТОМАТИЧЕСКИ РАСПОЛАГАЕТ ПРОГРАММУ В КОНТЕЙНЕРЕ В НУЖНОЙ ЧАСТИ(адресе) ОЗУ?
    2. ВОЗМОЖНО ЛИ СИЛЫ ПРОЦЕССОРА НАСТРОИТЬ НА ВЫДАЧУ СВОИХ РЕСУРСОВ ПРОГРАММЕ В КОНТЕЙНЕРЕ(оболочке?)

  • @InventionTherapy
    @InventionTherapy 7 років тому +1

    What is the best Arduino to start learning on?

  • @galotron5822
    @galotron5822 9 років тому +1

    Спасибо за ваши видео, очень клевые наработки, с чего посоветовали бы начать изучение электроники и МК

  • @ИгорьЖелезнов-э7л
    @ИгорьЖелезнов-э7л 7 років тому

    Уважаемый Александр! Светодиод в схеме раком стоит, наверное надо поправить.
    Вы при написании кода не указываете частоту процессора. Разве это не важно?
    Если кто-то будет повторять, то в Atmel Studio нужно чтобы стоял тулчейн Atmel AVR 32bit(C language). С 8-ми битным вылетают предупреждения.

  • @ТимТаллерр
    @ТимТаллерр 4 роки тому

    Автор спасибо! Не подскажите как можно при помощи одной кнопки изменять переменную на +1 при последующем нажатии или отпускании не используя прерывания!???

  • @1906199118
    @1906199118 5 років тому +2

    Класс, хорошее видео! У меня тупой вопрос. А можно ли писать программы для микроконтроллеров на языке Java?

  • @mobilelab9183
    @mobilelab9183 7 років тому

    Добрый день! Не пойму в чем дело.Как-то странно работает программа. При первом нажатии на кнопку светодиод загорается, а вот тухнет только после трех-четырех нажатий ( Кнопку проверял, все нормально .

  • @АзаматУрынбаев-н5о

    • А не проще ли использовать исключающие ИЛИ^(XOR))😉
    • Пример:
    if (~PINx &(1

  • @ЗинаидаАфонасьева-л2л

    Тактовая кнопка вместо генератора должна работать, разьве нет?

  • @ВсёПро100-ъ7в
    @ВсёПро100-ъ7в 8 років тому +1

    Саша, объясните пожалуйста, что означает строка 12 и для чего это нужно ?

    • @АлександрПисанец
      @АлександрПисанец  8 років тому

      asm("nop") - пустая команда, не чего не делает. Это для отладки я поставил, можно не использовать.

    • @ВсёПро100-ъ7в
      @ВсёПро100-ъ7в 8 років тому

      Понятно, спасибо.

  • @MrKr1k
    @MrKr1k 9 років тому +2

    Как всегда замечательно. Только после USART'а даже непривычно, что такой простой урок. Александр, подключали ли вы чип ADM485 в свои проекты? (интерфейс RS485)

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Nik RU42Я же говорю вопросов много на данную тему, вот и решил на них ответить.

    • @AndreyBog111
      @AndreyBog111 9 років тому

      Александр Писанец ОТВЕТТЕ ПОЖАЛУЙСТА!:
      1. ВОЗМОЖНО ЛИ ПОМЕСТИТЬ ПРОГРАММУ В
      КОНТЕЙНЕР-ДЛЯ-ПРОГРАММЫ ТАК, ЧТОБЫ КОНТЕЙНЕР УПРАВЛЯЛ ВЫДЕЛЕНИЕМ ОЗУ
      ПРОГРАММЕ В КОНТЕЙНЕРЕ?
      ВОЗМОЖНО ЛИ СДЕЛАТЬ ЧТОБЫ ЛЮБУЮ ПРОГРАММУ
      МОЖНО БЫЛО ПОМЕСТИТЬ В КОНТЕЙНЕР(как желток в белок и скарлупу) КОТОРЫЙ
      АВТОМАТИЧЕСКИ РАСПОЛАГАЕТ ПРОГРАММУ В КОНТЕЙНЕРЕ В НУЖНОЙ ЧАСТИ(адресе)
      ОЗУ?
      2. ВОЗМОЖНО ЛИ СИЛЫ ПРОЦЕССОРА НАСТРОИТЬ НА ВЫДАЧУ СВОИХ РЕСУРСОВ ПРОГРАММЕ В КОНТЕЙНЕРЕ(оболочке?)

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Честно сказать, я мало чего понял из заданного вопроса.

    • @MrKr1k
      @MrKr1k 9 років тому

      Мне кажется вопрос был в том, чтобы использовать что-то вроде динамического кода. Чтобы код генерировался в течении работы или была бы возможность добавить свой код в рабочую программу, а не только компилировался. Например работает базовая программа, которая выводит данные "контейнера", а мы в свою очередь можем залить (через флешку например) в этот контейнер что угодно (любую программу).
      Все как-то мутновато описано, но надеюсь я правильно понял.

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      Я не готов ответить, лично я не реализовывал такого. Может и возможно, надо все разглаживать и думать. Но скорей всего, в данном микроконтроллере это мало вероятно.

  • @dmitriibannikovasx
    @dmitriibannikovasx 7 років тому

    И volatile перед переменной D вы прописали чтобы состояние сохранялось после выключения?

    • @АлександрПисанец
      @АлександрПисанец  7 років тому

      Нет, чтобы оптимизатор при высокой оптимизации, не игнорировал данную переменную

  • @TheMobileOn
    @TheMobileOn 8 років тому

    В программирование микроконтроллеров не силён, но булевы переменные можно инвертировать так: переменная = !переменная.

    • @ClydeSimonSound
      @ClydeSimonSound 6 років тому

      Можно таким образом не только булевые инвертировать

  • @goodwin039
    @goodwin039 6 років тому

    Спасибо за видео. У меня вопрос - до Вашего видео настраивал порты на приём/передачу вот так: DDRB = 0xFF (если передача) и DDRB = 0x00 (если приём). Подобным образом присваивал значения в PORTB/PINB. А у Вас в видео используются совсем другие операторы. Где можно почитать про эти операторы - как они работают, что означают?

  • @dargindarginec9561
    @dargindarginec9561 8 років тому

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

    • @АлександрПисанец
      @АлександрПисанец  8 років тому

      +dargin darginec Если устраивает кодевизион то можго и не менять на AtmelStudio

    • @dargindarginec9561
      @dargindarginec9561 8 років тому

      Александр Писанец в принципе устраивает, я только мелкие программы составляю. у AtmelStudio больше возможности я как заметил да?. из сложных программ я в 3ф серво драйвере завис и еще светодиодная реклама на колесо велосипеду. 3ф серво, есть готовые схемы с прошивкой но я вникнуть хочу научиться как самому написать. я ваш канал тоже посещаю часто думая вдруг у вас что то появиться )))

    • @АлександрПисанец
      @АлександрПисанец  8 років тому

      Безусловно когда сам все делаеш возможности большие, потому что все понимаеш что делаеш. К сожалению все разработки занимают много времени я просто не успеваю все делать, хотя уже собирал изображение только не на велосипеде а на вентиляторе. Вентилятор крутится и появляется изображение. Я бы радостью поделился и схемой и кодом но проект увы, с жоским диском накрылся. Та много чего кануло, А создавать за нового это тяжело )

    • @dargindarginec9561
      @dargindarginec9561 8 років тому

      Александр Писанец у меня было такое что жесткий диск тупо отказал. с единственными данными и файлами, архивами. я чуть сознание не потерял. нужно было вести в Москву или Краснодар. там оборудование по ремонту жестких дисков чтобы данные вытащить с сгоревшего жесткого диска бешенную цену зарядили. еще хуже стало и когда полегчало я нащел такойже жестк диск и поменял плату и заработал. но память пустая была. после востоновление с какойто программой я вытащил все данные около 400гига. три дня программа автоматическом виде востонавливала целых 3дня. мне повезло наверно тогда.

  • @gurudk3378
    @gurudk3378 5 років тому

    Всегда чем то привлекала елекроника. Вообще интересное занятие такое программирование?

  • @user-bu9vk6ib3j
    @user-bu9vk6ib3j Рік тому

    да. но вот как подключить у нему программатор???

  • @vedgray9773
    @vedgray9773 7 років тому +1

    в коде нет прототипа button() и не указан тип функции

  • @ievgenod9708
    @ievgenod9708 9 років тому

    спасибо за урок.но меня интересует один вопрос:что лучше для старта ASSEMBLER или С.многие советуют именно Assemler.

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Ievgen Od Тяжело так дать направление , лично я начинал с ассемблера, Но потом перешел на си. Ассемблер лишним не будет, но писать программы на нем тяжелее, все нужно прописывать и учитывать в самостоятельно.

    • @alexboldvin7442
      @alexboldvin7442 9 років тому

      +Александр Писанец Скажите, а вот если учитывать дребезг контактов, можете сделать урок также по этому? Чтобы не было недостатка этого с дребезгом

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      матричная клавиатура ua-cam.com/video/A8rLopwaqmE/v-deo.html

    • @alexboldvin7442
      @alexboldvin7442 9 років тому

      Александр Писанец
      спасибо

    • @alexboldvin7442
      @alexboldvin7442 9 років тому

      Александр Писанец
      сделайте, пожалуйста, уроки по TIMER_COUNTER1 и TIMER_COUNTER2/ И как их можно настраивать и пользоваться одновременно. Думаю, это будут интересные уроки

  • @Ma_X64
    @Ma_X64 2 роки тому

    Зачем писать спецификатор volatile для рандомных переменных? Называется "чо делаю, сам не знаю".

  • @vika_papa
    @vika_papa 7 років тому

    Как научиться читать прошивку с микроконтроллера и записывать ее туда с помощью простого программатора usbasp или любого другого.

  • @BEST83154
    @BEST83154 9 років тому

    скажите пожалуйста,можно ли сделать на тамеге8 такую вещь = 2кнопки управления назавем им + -
    и что бы при помощи их выводить аналоговый сигнал от нуля до пяти вольт?

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      +Александр Чернобривко конечно, это не сложно.

    • @BEST83154
      @BEST83154 9 років тому

      +Александр Писанец и что бы эти 5в были от отдельного источника питания? надо использовать именно это опорное напряжение!
      а вы не можите снять видео как набрать прошивку?
      необходимо 2 таких канала
      и еще вопрос и можно реализовать к примеру несколько кнопок как память тех выставленых значений те выставил необходимое напряжение нажал на кнопку,подержал секунду и те параметры были в памяти!

  • @dmitriibannikovasx
    @dmitriibannikovasx 7 років тому

    Столкнулся с такой проблемой: если кнопка вызывает довольно длительную по времени функцию, например мигание светодиода, то чтобы включить или выключить эту функцию, надо нажимать на кнопку время, соспоставимое с длительностью этой функции(

  • @dmitriibannikovasx
    @dmitriibannikovasx 7 років тому

    Александр, пожалуйста, скажите, где я могу узнать про вот эти значки &,=,~ которые вы используете в своем коде? Что они означают? Почему например вы написали DDRC |= (1

  • @virtual1981ify
    @virtual1981ify 9 років тому +2

    Доброго вечора, скжіть будьласка чи буде урок по підключеню DS18B20. Вибачте, що не по темі, пошти вашої незнаю.

  • @Самоделкин-и7щ
    @Самоделкин-и7щ 7 років тому

    Да, обучая, учишься сам... Программа написана на "Си"... Некоторые участки, критичные к времени выполнения, можно переписать на ассемблере... Прелесть поддерживаемой этой средой версии "Си" в том, что в текст на "Си" можно используя операторы: ASM... ENDASM... вставлять текст на ассемблере...

    • @АлександрПисанец
      @АлександрПисанец  7 років тому

      Можно и даже нужно, на участках кода где важно время выполнения,не все так просто, особенно с переменными

  • @dmitriibannikovasx
    @dmitriibannikovasx 7 років тому

    А что за плата на демонстрации работы кнопки в начале урока? Что вы на ней делали?

    • @АлександрПисанец
      @АлександрПисанец  7 років тому

      Это макетка, с двумя микроконтроллерами. На ATMEGA48 реализован терморегулятор.

  • @xrotatuilx
    @xrotatuilx 7 років тому

    na 5:30 slucaino eto ne iz za togo cto simuljator ne emuliruet tot rezistor kotoroga pokazal na 3:30 ?

  • @goodwill7643
    @goodwill7643 5 років тому +1

    альтернативный вариант toggle с задержкой по тимеру или простой коунтер по while циклу PORTC ^=(1

  • @NIKOLAY_PSHONIA
    @NIKOLAY_PSHONIA 9 років тому

    Спасибо Вам за видео, Кое что интересное почерпнул. Мал. вопрос почему не сделать PORTD^=(1

  • @НаташаРоманец-в8ц
    @НаташаРоманец-в8ц 4 роки тому

    Неужели у ВСЕХ эта программка заработала? Я, как начинающий, продолбался 4 дня, пока она начала работать.А всего лишь последнюю команду D |=(1

  • @irbiit4910
    @irbiit4910 9 років тому

    Спасибо за урок. А можно осветить отладку с помощью JTAG?

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      Ir Biit А что имено там показывать?, как подключить программатору я рассказывал.ua-cam.com/video/b1BTii-hjsA/v-deo.html

    • @irbiit4910
      @irbiit4910 9 років тому

      Александр Писанец Вопрос не касается того, как программировать через JTAG. Вопрос об отладке уже прошитого чипа с помощью этого интерфейса. К примеру, как делаются точки останова, как при этом взаимодействовать со средой программирования.

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Данные уроки были про саму AtmelStudio
      там и точки остановки. В обще отладка мало чем отличается от симулятора. Но при случаи покажу.

  • @vladislavavr146
    @vladislavavr146 8 років тому

    А как сделать в CodeVision AVR пример как здесь? Вот просто на тактовую кнопку нажал кратковременно например на порт B, а на порте D включился светодиод и этой же кнопкой и выключать его тоже кратковременным нажатием. Используется Attiny2313. CodeVision и Proteus. Уже замучался поиском решений.

    • @toshibamaster2210
      @toshibamaster2210 8 років тому

      в CV avr все проще . спсибо тем кто его придумал

  • @avr_stm_pro2955
    @avr_stm_pro2955 6 років тому +1

    СПАСИБО!!

  • @PashaFusion1
    @PashaFusion1 8 років тому +1

    все разобрался там делей надо ставить иначе дребезжит постоянно при нажатии. даже в протеусе 5 раз моргает

  • @АлександрМирошник-о7ч

    Спасибо за видео

  • @sergey2147
    @sergey2147 7 років тому

    скачал прогграмму и как ее запустить нет екзешного вайла

  • @DrLithium
    @DrLithium 9 років тому

    Подобные вопросы разбираются в литературе довольно часто. Вы да же не показали возникаюшую проблему из-за дребезга, что б решить её в следующем уроке.
    Мы же ждём 3-й урок по LCD.
    З.Ы. Спасибо за перепелов в майонезе! Маме они то же понравились.

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      DrLithium Дребезг контактов я а уроке по матричной клавиатуре все показал как убрать можно. Но судя по комментариям там далеко не все все поняли.

    • @DrLithium
      @DrLithium 9 років тому

      Александр Писанец То что решение уже было показано - хорошо, но для наглядности было бы не плохо показать проблему и дать ссылку на решение (тем кому это надо). А то получается вырванный кусок из учебника, т.с. без изюминки.
      И ещё один момент, хронология решения некоторых шагов-проблем-решений лучше не нарушать. Надо приучать людей работать по сценарию: постановка задачи, воплощение, сопутствующие проблемы и их решение.
      Я понимаю, что не всё получается как хочется, это просто мнение.

    • @alexboldvin7442
      @alexboldvin7442 9 років тому

      DrLithium дайте человеку понемногу самому разбираться в тематике к СВОИМ видео, со временем он сам увидит потребности каждого

    • @АлександрПисанец
      @АлександрПисанец  9 років тому

      Вы правы, но как это все реализовать?
      Самого начала я делал как бы урок по конкретной теме. Но в процессе выяснилось что очень много не понимают как это все применять. Начинаю показывать на простеньких примерах возникают другие вопросы и т.д. Насколько понял нужно к примеру как работает USART затем пару примеров с объяснениями. Если есть пожелания готов выслушать.

    • @DrLithium
      @DrLithium 9 років тому

      Александр Писанец Я думаю, что раз есть много литературы по отдельным вопросам, то лучший вариант это реализация большого проекта разбитого по частям на отдельные вопросы с решениями. Например: УКВ-приёмник и LCD, памятью сканированием. Реализация подобного проект уже была показана в литературе. А вот в живую... Уроков за 20-30 было бы круто.
      Начинать с подготовки, т.е. с дробления поставленной задачи на части и прояснения вопросов каким образом это должно работать. Далее определение функционала устройства, т.е. занесение станций в память, сканер, набор частоты вручную, ввод номера ячейки памяти и/или последовательный перебор ячеек, индикация стерео на LCD или достаточно светодиода стереокодера, таймер, часы (если на I2C, то не надо полностью разбирать работу шины, библиотек с реализацией будет достаточно), будильник и т.п. Далее подбор аппаратной части: МК (ATmega8a должен подойти), радиочасть (например от автомобильной магнитолы) + стереодекодер, клавиатура, ДУ и т.п. И после программная часть, во всей красоте проблем-решений.
      В итоге это м.б. оформлено как подарок маме на кухню, на ДР.

  • @Asadula87
    @Asadula87 7 років тому

    всю жизнь мечтал программировать, но так и не смог освоить. ЭХ!

  • @serghsover1154
    @serghsover1154 9 років тому

    все конечно интересно но та ссылка которая в описании под видео там куча папок и файлов и как этим пользоваться абсолютно не ясно хотелось бы каких то пояснений

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      +Sergh Sove Распаковываете. Запускаете GccAppLicatio1.atsln весь проект откроется в Atmel Studio.

  • @ВсёПро100-ъ7в
    @ВсёПро100-ъ7в 6 років тому

    На 2.00 ошибка . Пин 1 порта С настраивать на выход.

  • @random6959
    @random6959 5 років тому

    а почему ты использовал как флаг переменную типа char если можно было bool?

    • @АлександрПисанец
      @АлександрПисанец  5 років тому

      Конечно можно, это всего один из вариантов

    • @random6959
      @random6959 5 років тому

      @@АлександрПисанец спасибо за ответ. Я просто в электронику из программирования перехожу и стараюсь память контроллера экономить.

  • @kvk-ut
    @kvk-ut 6 років тому

    А каким образом можно реализовать, скажем две кнопки ?

    • @АлександрПисанец
      @АлександрПисанец  6 років тому

      Вариантов много к примеру так ua-cam.com/video/5tLH8xVayhc/v-deo.html

    • @kvk-ut
      @kvk-ut 6 років тому

      Спасибо , интересное решение.

  • @sssserya1
    @sssserya1 8 років тому

    проверил в среде адруино у вас while(1){ без скобок
    и скобки всегда должны быть по парно .
    и функция int button() без инициализации была
    потому и криво работает вот исправил попробуйте
    #include
    volatile unsigned char D;
    int main(void){
    DDRC |=(1

    • @АлександрПисанец
      @АлександрПисанец  8 років тому

      +SergeyD Вы абсолютно правы, скобки нужны. Как с сам не заметил ошибки. Спасибо

  • @Dmitrii82
    @Dmitrii82 5 років тому +1

    Не понял про флаги. К какому биту привязан D? К какому порту.

  • @АндрейЗапромётов-ь3л

    Здравствуйте!!! Хотелось бы видео урок по тактовым кнопкам более углублённый. А точнее как реализовать одной кнопкой несколько функций. Например, длинное нажатие - одно действие. Короткое нажатие - другое действие. Два коротких нажатие - третье. Одно длинное и два коротких - другое. И т.д. Сам никак разобраться не могу. Спасибо!

    • @АлександрПисанец
      @АлександрПисанец  9 років тому +1

      Андрей Запромётов Подсчитываете время удержание при помощи таймера в зависимости от времени сработанной тактовой кнопки делаете какие то действия.

    • @АндрейЗапромётов-ь3л
      @АндрейЗапромётов-ь3л 9 років тому

      Александр Писанец Теоретически понятно, вот бы на живом примере. Если будет время и желание, пожалуйста, сделайте видео.

  • @ИгорьЖелезнов-э7л
    @ИгорьЖелезнов-э7л 7 років тому +1

    А жалко, что про дребезг нет!!!

  • @коляструков-ю3ф
    @коляструков-ю3ф 5 років тому

    спасибо вам

  • @kosmos8460
    @kosmos8460 3 роки тому

    Без _delay_ms() функции будут ложные срабатывания

  • @o.l.6964
    @o.l.6964 4 роки тому +1

    Состояние нулевого пина порта Б.. вы чо издеваетесь? Какой же это урок для начинающих..

  • @artemdavinci
    @artemdavinci 10 місяців тому

    Також не враховує дребезг, але простіше, швидше і займає менше місця
    void button( void )
    {
    if( PINB & (1

  • @ТкачПавло-ч1ч
    @ТкачПавло-ч1ч 4 роки тому

    49.5?)

  • @ВикаВолк-к8н
    @ВикаВолк-к8н 8 років тому

    нужно вводить _delay_ms(20) иначе ибудет срабатывать спасибо автору
    грамотный человек (ENX1XihU0uA) , а так же обрати внимание на прогер.ру

  • @toshibamaster2210
    @toshibamaster2210 8 років тому

    вообще нравится сажать кнопки на ацп

  • @DygDyg1000
    @DygDyg1000 6 років тому

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

  • @PashaFusion1
    @PashaFusion1 8 років тому

    не работает программа побывал в протеусе

    • @АлександрПисанец
      @АлександрПисанец  8 років тому +1

      +Pasha Fusion Не могу сказать почему в протеусе не работает. Я даже в начале показал как программа работает.

    • @PashaFusion1
      @PashaFusion1 8 років тому

      Значит неисправна 100%

  • @СергійРожко-и5ш
    @СергійРожко-и5ш 7 років тому +1

    Спасибо за познавательные видео по своим поделкам в частности по программированию МК... Сам начал, благодаря вам, учится програмировать. Увлекаюсь МК на любительском уровне. Уже сделал пару проэктов на АВР МК. Но сейчас столкнулся с такими - работа МК Attiny13 в Power down mode. Код написал, скомпилировал но МК после sleep и пробуждения по int0 не отрабатывает прерывания по таймеру. Сам еще плату не делал и в железе не проверял, но протеус на этот режим адекватно не реагирует. Если вам не сложно, сделайте для таких как я обучающие видео по этим режимам. Ну и если у вас будет возможность удалённо помочь советом постучите на rodgik84@gmail.com буду благодарен.

  • @DirectionToTheTop
    @DirectionToTheTop 5 років тому +3

    Без борьбы с дребезгом, материал ни о чём, тем более для начинающих.

  • @mansur8595
    @mansur8595 8 років тому +3

    это не для начинающих,ни хрена ничег о не понятно .надо все разложить по полочкам ,куда заити что нажать

  • @XAngelsLifeX
    @XAngelsLifeX 8 років тому

    Спасибо за видео