Interrupts in Arduino, Part 1. Timer interruptions - Arduino for beginners

  Рет қаралды 116,015

LabRazum | Виктор Осин

LabRazum | Виктор Осин

Күн бұрын

The site of the school of technical creativity INTEGER Omsk: gointeger.ru/
Vkontakte community: gointeger
Links for ordering the necessary components: progmk.ru/kompo...
Everything for programmers: progmk.ru/
================================================== ====
DESCRIPTION:
This is the first part, perhaps, of the most important and complex topic within the framework of the "Arduino Basics for Beginners" course, as today we will talk about interruptions. Specifically, about timer interruptions. About how to make your programs more flexible and get rid of the notorious delay () function, which, in fact, stops the entire microcontroller.
================================================== ====
Sketches shown in the video: yadi.sk/d/29qd...
================================================== ====
The rest of the course "Arduino for Beginners": • ОБРАЗОВАТЕЛЬНОЕ: Уроки...
================================================== ====
We can help our project by these details:
Yandex.Money - 410011223685103
Webmoney - R516670493738
Sberbank - 4276450014692863
Paypal - viva-os@mail.ru
================================================== ====
"Robotics", "Smart Home", "Arduino for Beginners" - unique courses on learning the basics of programming and creating electronic devices for children and adults. A consistent approach to learning and guaranteed results in both school and online classes. Free trial lesson - gointeger.ru/

Пікірлер: 198
@LabRazum
@LabRazum 7 жыл бұрын
UPD: Вторая часть видео: kzbin.info/www/bejne/eIHRf4Stp5Zrr8k На 7:09 очепятка - 0.001с = 1 мс На 11:02 забыл добавить обязательное обнуление переменной timerLED1, когда она отсчитает 1000, будьте внимательны. Правильно будет так: timerLED1++; if(timerLED1 == 1000) { timer LED1 = 0; timerLED1Sec++; }
@McrRadium
@McrRadium 7 жыл бұрын
Как увидел в видео эти строки тут же кинулся в комменты искать патч) Там ведь можно обойтись остатком от деления, чтобы не инициализировать новую переменную. Но. Так таймер будет каждый ~50 дней ошибаться на 705 мс. Серьезный выбор, 705 мс на 50 дней или пару байт оперативной памяти)
@DDRcom
@DDRcom 6 жыл бұрын
Ничего страшного при переполнении не будет, это беззнаковые переменные, а значит их разность даст нам разность по модулю. т.е запись вида timerLed- timerPrev >=1000 - корректно отработает при переполнении timerLed. проблема будет наблюдаться только при записи вида timerLed>= timerPrev+1000. Поэтому необходимо использовать сравнение в виде первой записи и все будет ОК.
@КокоЙцук
@КокоЙцук 6 жыл бұрын
ну какой нахер звонок? ты чо про прерывания шестилетним детям рассказываешь? Или нормальным людям? Сказать нельзя что сигнал идет постоянно а, скажем, нажатие кнопки размыкает цепь и получается прерывание? И сравнить это с ГОРЯЩЕЙ ЛАМПОЧКОЙ, А НЕ С ДВЕРНЫМ ЗВОНКОМ. Или уж если со звонком то мог бы сказать что ты воткнул в кнопку звонка спичку и он голосит как сумасшедший а добрые гости пришли и вытащили спичку. Эх, ты, горе-учитель. Мне жалко твою аудиторию. Не у это - пиздец, обнуление переменной он забыл, а сравнить прерывание с замыканием он не забыл. да ну, нах!!!
@m4dd1m4
@m4dd1m4 5 жыл бұрын
Запиши свое видео и покажи как надо... Критик хренов, высосал все таки причину ядом на инете побрызгать.... Автору 5 баллов! видео отличное, так все и должно обучатся, как для маленьких детей рассасываться.
@gelaev7670
@gelaev7670 5 жыл бұрын
@@m4dd1m4 каждому своё
@romanberngardt2855
@romanberngardt2855 7 жыл бұрын
7:12 0.010 c - это 10 миллисекунд, а не одна. Но вот 0.000004х250 действительно равно 0.001, то есть 1 миллисекунде.
@chingizbashirov2354
@chingizbashirov2354 2 жыл бұрын
Так долго ломал голову над тем как сделать что бы два двигателя в моем проекте работали одновременно. И тут в рекомендацию выходит это видео. Спасибо!
@sylstall5590
@sylstall5590 6 жыл бұрын
Не видно обещанных последующих видеоуроков. Продолжайте пожалуйста, всем интересно, ждем!
@LabRazum
@LabRazum 4 жыл бұрын
Вторая часть видео: kzbin.info/www/bejne/eIHRf4Stp5Zrr8k
@incorruptibilis
@incorruptibilis 7 жыл бұрын
Все четко, по полочкам! Безмерно благодарен. Продолжайте проект это очень нужно новичкам.
@pupkin204
@pupkin204 4 жыл бұрын
У светодиодах одинаковое время горения и время не горения, а как сделать, что бы было как blinka, что бы можно было менять время горения и не горения каждого светодиода.
@АлексейВ-ь5ы
@АлексейВ-ь5ы 3 жыл бұрын
@Bulba NaftРугается на последнюю строчку greenOFF = millis();
@1978Denis1978
@1978Denis1978 4 жыл бұрын
Круть! Ничего не понял, но понял, что нужно разобраться в этих таймингах, СПАСИБО!!!!!!!!!!!
@iopko26heb58
@iopko26heb58 6 жыл бұрын
Парень молодец. Подаёт материал грамотно, без запинок, а-канья, из ума всё. Все выпуски просмотрел, ждём продолжения. СПАСИБО!!!
@Редкиевидеороликипрокомпанетнт
@Редкиевидеороликипрокомпанетнт 7 жыл бұрын
Огромное спасибо за такой труд, это именно то видео которого мне так не хватало!!! Спасибо автору за такое очень полезное пояснение в видео!!! От меня Лайк!!!
@Алексей-ф3ч6ж
@Алексей-ф3ч6ж 6 жыл бұрын
Когда будет продолжение выпусков?
@aptem968
@aptem968 6 жыл бұрын
когда будет продолжение
@shonnews7025
@shonnews7025 2 жыл бұрын
7.08- 7.27 Виправте помилки з нулями. 1мс =0.001с. Гарне навчальне відео, дякую.
@Gleb_Pastushenko
@Gleb_Pastushenko 6 жыл бұрын
А зачем такое громоздкое условие на переключение флага LED1On? Вместо этих 10 строк проще написать: LED1On = !LED1On; degitalWrite(13, LED1On);
@СергейЖильцов-х3ц
@СергейЖильцов-х3ц 7 жыл бұрын
0.000004*256=0.001024 (норик пропустили)
@Yupitrer
@Yupitrer 7 жыл бұрын
Букву "л" пропустили )
@sanzhar4710
@sanzhar4710 4 жыл бұрын
@@Yupitrer не пропустили а заменили
@Steel.Needle
@Steel.Needle 4 жыл бұрын
Это все заметили , просто не все заостряют на этом внимание. Автору- респект.
@Хэндрикс
@Хэндрикс 6 жыл бұрын
Здравствуйте! Нравятся Ваши видео, очень доступно объясняете)) В своих кодах вы пишете "Если таймер отсчитал больше заданного значения". Но возник один вопрос - допустим в основном цикле у меня выполняется задача, в которой очень важно сохранять равные промежутки времени (не 1,001мс, не 0,9999мс, а ровно 1мс). При этом есть прерывание, например при нажатии кнопки производится какое-то действие. Оно же занимает определенное кол-во тактов, так? Основной цикл останавливается на это время. Получится незначительное изменение, времени работы, но мне то оно значительно! Не пойму, как синхронизировать работу так, чтобы отсчет в основном цикле всегда работал чётко, несмотря на прерывания. Есть идеи?))
@bir52k1kv178
@bir52k1kv178 4 жыл бұрын
11:03 нет в условии обнуления миллисекундного счётчика когда он достигает значения 1000 if(timerLED1 == 1000) { timerLED1Sec++; timerLED1 = 0; }
@Andrei-fz8rb
@Andrei-fz8rb 2 жыл бұрын
Я тоже заметил. И полез в Комменты. Оказывается не я один.🙂Могу ошибаться но по моему переменная timerLED1Sec++; уже не нужна.
@topalov_al
@topalov_al 7 жыл бұрын
Чувствую не один раз буду пересматривать это видео :) Спасибо за информацию)
@Yupitrer
@Yupitrer 6 жыл бұрын
Вот, смотрю спустя 4 месяца, уже немного понял.
@ВладимирКосовских-ь3т
@ВладимирКосовских-ь3т 5 жыл бұрын
@@Yupitrer а, извиняюсь, в который раз?
@maxwellhawk
@maxwellhawk 5 жыл бұрын
А я вот нифига не понял. Первые уроки которые ну реально не очем разжеваны в пух и прах, даже обезьяна поймет. А тут хоп-хоп и конец. Ниче не обьяснил толком... А это как никак одна из сложных тем.
@Yupitrer
@Yupitrer 5 жыл бұрын
@@ВладимирКосовских-ь3т сегодня 28.10.19 Смотрю 4й раз. Для дела нужно)
@mihail8159
@mihail8159 26 күн бұрын
🥰🥰🥰🥰🥰Спасибо ,брат!!!!
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 7 жыл бұрын
А как настроить мой ардуино, чтобы он по прерыванию бахал лайк этому видео? Спасибо за весь курс и отдельно за это видео.
@sergiuspoet
@sergiuspoet 4 жыл бұрын
для разных диодов понятно а как для одного задать разное время задержки
@gromitwoll6907
@gromitwoll6907 6 жыл бұрын
А вроде крутой проект намечался. Зря подписывался?
@fixfix6815
@fixfix6815 7 жыл бұрын
Блин... Спасибо вам огромное!
@Razmarin84
@Razmarin84 6 жыл бұрын
Не так давно обнаружил Ваш канал, огромное спасибо за труды, все очень доступно и понятно. Жду продолжения!
@МВолков-с6ж
@МВолков-с6ж 6 жыл бұрын
Извините, а где вторая часть 11-урока?
@школабизнеса-у3и
@школабизнеса-у3и 7 жыл бұрын
0,01 сек- это 10 мс.))
@santhermTV
@santhermTV Жыл бұрын
Так-то хороший пример использования прерывания по системному таймеру, только совсем не корректный, учитывая, что с поставленной задачей намного проще справляется таймер на millis без использования системных прерываний.
@Yupitrer
@Yupitrer 7 жыл бұрын
Народ! Да я спасен! Это не вероятно. Целую неделю я думал как обойти эту бычевскую "дилей". Ролик прям в точку.
@виталий-я7о1д
@виталий-я7о1д 6 жыл бұрын
А можно заставить светодиод гореть одну секунду а не гореть десять?
@Nikita_Pro89
@Nikita_Pro89 10 ай бұрын
Здравствуйте, спасибо за информацию. Обнаружил опечатку 8:31 (Timer2 использует пины 11 и 13). Должно быть 11 и 3.
@kolroot1281
@kolroot1281 2 жыл бұрын
А почему сразу не использовать unsigned long long ?
@Captain_Nemo_080
@Captain_Nemo_080 6 жыл бұрын
((( продолжения не будет??? Очень жаль...
@AleksandrHolod
@AleksandrHolod 3 жыл бұрын
Исправьте ошибочку, друзья, касательно миллисекунд. Вводите в заблуждение)
@Bondarev-Y
@Bondarev-Y 2 жыл бұрын
Здравствуйте. Это получается, что этим способом можно считывать аналоговый вход? Или если нет delay, то и нет смысла?
@ОлегБелов-и9ч
@ОлегБелов-и9ч 6 жыл бұрын
Пишите и не стесняйтесь пересматривать))) Ещё сто раз придётся поглядеть
@689849120
@689849120 3 жыл бұрын
Скажите пожалуйста можно ли организовать с помощью Ардуино и оптических энкодеров индикацию направления вращения вала мотора от 0 до 15000 оборотов?
@fnhm_
@fnhm_ 4 жыл бұрын
10:24 Почему бы вместо использования двух переменных просто не обнулять переменную счетчика при достижении значения в 1000? Таким образом экономится память (одна переменная вместо двух, тип переменной можно сделать uint16_t) и возможность переполнения можно исключить
@ИванКосарев-в2е
@ИванКосарев-в2е Жыл бұрын
Логика функция делей занимает 1 строчку delay(1000); и все готова, millis() это пару десятков строк кода а если код линейный еще и бесполезный. и почему же новички используют функцию delay ? потому что millis(1000)- нашел на.... а delay(1000) спасибо господин. Вот так и живем
@RetiredNihilist
@RetiredNihilist 5 ай бұрын
Очень полезное видео, спасибо! Подскажите пожалуйста, возможно ли обеспечить многозадачность работы одной платы Ардуино UNO так, что бы она одновременно излучала ИК сигнал по протоколу NEC, например, и принимала его ИК приёмником типа CHQ 1838?
@Trikster567
@Trikster567 3 жыл бұрын
Не получается передать обороты с датчика Холла с олной ардуино на другую. Может это саязано с прерываниями? Без RS485, все получается, как только подключаю передачу данных не идет.
@Alex_Nikolaivski
@Alex_Nikolaivski 4 жыл бұрын
Здравствуйте я ваш подпищик и прошу помощи. Я работаю в школе учителем физики я хочу сделать таймер для звонка на перемену 7 уроков 14 заданий вкл выкл у меня есть дисплей 1602, ДС1302, АРДУИНО НАНО помогите реализовать проект.
@eduardmart1237
@eduardmart1237 3 жыл бұрын
А зачем тут loop, а не написать логику в функции вызываемой в прерывании?
@СергейИльченко-щ4м
@СергейИльченко-щ4м 5 жыл бұрын
Кстати, в режиме СТС, функции миллис и микрос не работают вообще, только если сравнение будет 255. Я думаю вы бы сделали сносочку в видео, что бы не вводить людей в заблуждение...
@Tarik91011
@Tarik91011 3 жыл бұрын
Объясняю для таких как я, делительная 64 означает что подсчёт тактов дойдёт до 250.000 и сброситься и начнется заново он не будет в конце делить 16 000 000 на 64 посколько это может быть поздно ми можем множить нетолько 250 чтобы получить 1 мс.
@otherattack6125
@otherattack6125 6 жыл бұрын
С нетерпением жду продолжения!
@ramzeschannel5892
@ramzeschannel5892 11 ай бұрын
Вроде как 1 мс это 1/1000 секунды - 0,001, а не одна сотая - 0,01!!! Ошибочка тут, вроде.
@ВикторКулагин-ж9о
@ВикторКулагин-ж9о 7 жыл бұрын
Помогите мне нужно все как вашем виде только мне нужно зажигать светодиод на 2сек. Выключать его на 60 мин. Вообще мне это нужно залить в тмни13а
@LabRazum
@LabRazum 7 жыл бұрын
Посмотрите настройки таймеров для tiny13а по даташиту, ну а дальше следуйте тем же примерам из видео и изменяйте значение таймера под нужное вам.
@ivanvasin5666
@ivanvasin5666 2 жыл бұрын
А как реализовать работу светодиода(или реле): 1мин горит а 5 минут не горит?
@Yupitrer
@Yupitrer 7 жыл бұрын
Вот убил бы! Кто дизы ставит? Автор на столько доступно рассказывает что даже за деньги такого не расскажут.
@gelaev7670
@gelaev7670 5 жыл бұрын
я поставил диз, потому что в ролике есть критические ошибки, но вам их и за 10 лет не найти, раз вы неделю не можете придумать как обойти функцию delay и за каким-то чёртом (как и автор этого видео) используете для этих целей прерывание по таймеру, по сути заново придумав и усложнив команду millis.
@boyabend1912
@boyabend1912 4 жыл бұрын
Нестыковка получается, если в программу добавить delay или Serial.print, все тормозит...
@Одинденьизжизниселянина
@Одинденьизжизниселянина 6 жыл бұрын
Добрый день подскажите пожалуйста почему LCD экран сначала работает всё отлично а через несколько минут на нём исчезают все надписи
@reodos3
@reodos3 5 жыл бұрын
7:02 0,000004*256=0,001024 И еще, пробовал игратся со значением OCR0A = 0xF9; - ставил в 2 раза меньшее значение, но при этом частота мигания не увеличилась в 2 раза, чтото я делаю не так?
@sergeystep3415
@sergeystep3415 4 жыл бұрын
нужно в десятичной системе писать, а не в 16 ичной тогда хорошо работает, в разных ардуино поразному то 16 ичные нужно писать то в 10 ичной системе.
@sergeystep3415
@sergeystep3415 4 жыл бұрын
пиши просто 125
@danik3314
@danik3314 7 жыл бұрын
Проекту и автору огромное спасибо! почему долго не выходят следующие уроки жду с ни терпением!!!!
@LabRazum
@LabRazum 7 жыл бұрын
Серия обязательно продолжится, сейчас пока готовимся к открытию школы в Омске, возможно, будем снимать из нового места :)
@zhdanvadim9536
@zhdanvadim9536 6 жыл бұрын
Спасибо!
@wel_vito5911
@wel_vito5911 3 жыл бұрын
как менять функции при нажании одной кнопки
@kosmos8460
@kosmos8460 2 жыл бұрын
Куда вы пропали со своими уроками ?!
@cultofsogga5863
@cultofsogga5863 6 жыл бұрын
половину объяснил, половину читайте на паузе, половину загуглите, збс урок!
@denismorda
@denismorda 5 жыл бұрын
У меня в ардуино таймеры вообще не хотят работать. В AVR studio проблем нет. Я так понимаю это конфликты библиотек?
@lexanstels5344
@lexanstels5344 6 жыл бұрын
Подскажите, как избавится от кучи глобальных переменных? Ато ардуина мега начала жаловатся на нехватку памяти. И говорит что может работать не корректно. Но как уменьшить их количество если все функций и прерывания завязаны вместе и через глобальные переменные они получают и запоминают состояния и осуществляют приём передачу данных между ними.
@ПрицепЮА
@ПрицепЮА 4 жыл бұрын
Спасибо
@nursultansulaymanov
@nursultansulaymanov 6 жыл бұрын
Можно же просто millis() использовать? вместо всех этих кодов sei cli ?
@Max-i1h
@Max-i1h Жыл бұрын
Такое ощущение что специально материал преподнесён очень сложно, как-то сильно заумно и запутанно, ты объясняешь не профессорам, а любителям, нужно проще давать материал, и подробней . Есть такая пословица " будь по проще и люди потянутся". Твои видео похоже на доклад профессора Склифосовского на научной конференции .
@Maxvel-Hausss_
@Maxvel-Hausss_ 10 ай бұрын
Нормально он объясняет,если не понятно еще раз пересмотри!Ну на крайняк покажи как надо объяснять!
@boobonchik
@boobonchik 7 жыл бұрын
Спасибо! Очень подробно объяснил.
@alekskapitonov2738
@alekskapitonov2738 8 ай бұрын
Спасибо автору!
@ОлегБолотный
@ОлегБолотный 4 жыл бұрын
подскажите пожалуйста как использовать millis в цикле For
@alekseybazilevich1368
@alekseybazilevich1368 4 жыл бұрын
Доброго времени суток, пример с светодиодом понял. Но вот пытался реализовать с датчиком температуры и не получилось. Может сможете помочь? void loop() { digitalWrite(term_power, HIGH); sensors.requestTemperatures(); delay(1000); sensors.requestTemperatures(); Serial.println(sensors.getTempCByIndex(0)); digitalWrite(term_power, LOW); delay(4000); } Буду очень благодарен. заранее спасибо.
@hagenh3365
@hagenh3365 5 жыл бұрын
Долго искал подробнее про программные прерывания, спасибо. А то раньше использовал чужой код без понимания. WDTCR=(1
@mihailpolunin6398
@mihailpolunin6398 6 жыл бұрын
Привет! А можно ссылку на даташит на русском для такого камня? Есть такое вообще? или только на англ языке?
@maozzzz
@maozzzz 4 жыл бұрын
13:00 А что за "какое-нибудь испорченное" значение вы можете получить? Иначе мы рискуем пропустить прерывание? Каким образом вы его пропустите, поясните, пожалуйста. И еще вопрос вдогонку: а остановив прерывания вы не рискуете его пропустить? Особенно учитывая, что у вас в loop всего пара операций? )) И еще вопрос. А нельзя ли моргать приблизительно так: Например на X мс: if (millis() % X == 0) toogle(LED_X)
@НиколайКапитан-ф8л
@НиколайКапитан-ф8л 2 жыл бұрын
спасибо
@AlyesKukharev
@AlyesKukharev 5 жыл бұрын
7:00 давайте подсчитаем 0,000004*256=0,001024! А у вас 0,01024
@Al.Sy.
@Al.Sy. 4 жыл бұрын
Прерывание на адресе 106 произошло, на вершине стека должен быть адрес следующей команды, перед которой было прерывание. Т.е. адрес возврата должен быть 107, но никак не 106.
@hagenh3365
@hagenh3365 5 жыл бұрын
Я правильно понял, что можно, в принципе, ничего не прописывать, раз изначально настройки и так в 1 миллисикунду ? Отвечу сам себе, да не надо, тут просто для примера видимо. Кстати sei в примере тоже не нужно, если сначала вы не запрещаете прерывания, смысл их разрешать? Проверил, всё работает и без этого.
@Инженерка
@Инженерка 7 жыл бұрын
Отлично подан материал. Я уже не Личинка кодера, но и далеко не Кодер-Прогер-Старичок. Но каждое ВАШЕ видео очень полезно. Это основы. Которых так не хватает. Когда делаешь что то сложное. А уж тем более многозадачное. Спасибо за самые важные базовые Кирпичи знаний.
@cultofsogga5863
@cultofsogga5863 6 жыл бұрын
Не дают спокойно морковь потереть)))))))
@vitalicorsun1190
@vitalicorsun1190 4 жыл бұрын
ЭТО ДЛЯ НАЧИНАЮЩИХ???))), все начинающие разбежались после первых слов!
@MakTitov
@MakTitov 7 жыл бұрын
Как понимание работы прерывания может и полезно, но как для организации параллельного мигания светодиодами - слишком заморочено и много кода. Проще делать через функцию "millis" на выходе она сразу без доп. настроек даёт значение в миллисекундах, и с помощью оператора сравнения "if" определяешь время до срабатывания. пример мигания одним светодиодом: bool x = LOW; unsigned long last; void setup() { pinMode(4, OUTPUT); } void loop() { if (millis() - last > 1000) { last = millis(); x=!x; digitalWrite(4, x); } } Значение 1000 - это задержка в миллисекундах, изменяйте по вкусу. Переменная "last" - хранит в себе значение счётчика во время предыдущего срабатывания. Переменная "x" - флаг статуса светодиода вкл. - выкл. Конечно способ не без недостатков, он относительно прерывания чуть больше грузит ядро, но для малых проектов не критично. При довольно большом количестве кода точность может снижаться, до нескольких миллисекунд. Связано это с тем что событие могло наступить а текущая итерация всего кода ещё не закончена и проверка "if" будет только на следующей итерации, спустя несколько миллисекунд - поэтому в операторе стоит знак больше ">" Так как по факту проходит где то 1001 - 1002 миллисекунды, но можно написать программную коррекцию и значение не превысит пары миллисекунд, даже в больших проектах.
@LabRazum
@LabRazum 7 жыл бұрын
Отвечал на подобный вопрос: Для меня проще знать, что и когда работает, и управлять этим процессом как мне захочется. ИМХО, гораздо удобнее создать собственный таймер под каждую задачу и пользоваться им на протяжении всей программы, реализовать такой же таймер чисто на millis будет труднее. К тому же, если вы вводите небольшие задержки, например, до 32 секунд, то вам не нужно использовать unsigned long переменные для хранения времени в огромных цифрах от функции millis(), что сэкономит память. Ну и конечно, важным плюсом, который я озвучивал, является независимость программного кода, расположенного в обработчике прерывания. То есть, поместив быстровыполняемую процедуру непосредственно в обработчик прерывания (тоже мигание светодиодом), мы вовсе оставим цикл loop пустым, и нам будет все равно, какой код в нем расположен, в том числе и задерживающие работу циклы while или функции delay (что, по сути, одно и тоже). Ваш код с использованием millis я приводил в видео, смотрите внимательнее, плюс, сказал, что все это делается конечно же не для обычного мигания светодиодами, а для создания псевдопараллельного выполнения разных элементов кода в более менее серьезных проектах. Создайте 5-10 подобных сравнивателей на millis, которые периодически нужно отключать, и поймете насколько неудобен ваш метод ;)
@MakTitov
@MakTitov 7 жыл бұрын
Да я со всем этим согласен, просто для меня ардуино - это средство получения приемлемого результата за очень короткий срок, благодаря более высокоуровневому языку - который в большинстве случаев позволяет обойтись без копания в глубинах микроконтроллера. ценой конечно производительности.
@LabRazum
@LabRazum 7 жыл бұрын
Да, ардуино создана чтобы упростить программирование незамысловатых устройств, и, рано или поздно, взявшись за более менее серьезный проект, придется сталкиватьс с реализацией некоторых вещей на обычном Си. Так что все исходит от того, насколько сложен ваш проект (обычно исходит от числа выполняемых функций) и каковы ваши требования к нему.
@ВадимВнуков-п4в
@ВадимВнуков-п4в 3 жыл бұрын
При инициализации таймера вначале нужно запретить прерывания, обнулить управляющие регистры и будет вам рабочий код.
@araxma-r2g
@araxma-r2g 3 жыл бұрын
Насчёт переменной подсчёта мс. Можно 16 разрядную положительную и спец алгоритм который учитывает переполнения. Например записываем или сравниваем с неким сгенерированный числом который учитывает переполнения
@ВикторКулагин-ж9о
@ВикторКулагин-ж9о 7 жыл бұрын
Помогите написать код для Тини13а нужно что бы светодиод горел 2 сек, и 60 минут не горел. Если не трудно помогите пожалуйста , можно код писать в ардуино ide , я умею заливать ардуиновские скетчи в тини13. Буду очень благодарен с меня лайк и подписка.
@danik3314
@danik3314 7 жыл бұрын
Очень хотелось бы увидит использование экранов nextion и его программирование в nextion editor
@ОлегАсанов-ь9м
@ОлегАсанов-ь9м 5 жыл бұрын
Добрый день! Планирую изготовить станок на базе ардуино. Не хотели бы поучаствовать в проекте?
@semisemikon1973
@semisemikon1973 5 жыл бұрын
Похоже прерывание затянулось... второй части нет и не будет?
@Bagasl
@Bagasl 4 жыл бұрын
Отличные видео, с норм объяснением о работе прерываний со стеком выполнения, респект. Вы только на Ардуино платформе пишете, или на чистом Си + AVR/STM32 тоже планируются проекты ?
@AndyOnes
@AndyOnes 2 жыл бұрын
Да, вот что значит молодой ум. Невнимательность, опыта нету, переменные путаются, код неоптимальный, с ошибками )))
@LabRazum
@LabRazum 2 жыл бұрын
Да, вот что значит старый ум. Внимательность, опыт есть, переменные не путаются, код оптимальный, без ошибок.. Правда, его никто никогда не увидит, только этот бестолковый комментарий, но старый ум доволен :)
@Max-i1h
@Max-i1h Жыл бұрын
@@LabRazum на обидные комментарии реагируешь, а если люди задают вопросы, так в ответ от тебя тишина.
@paulparker1463
@paulparker1463 5 жыл бұрын
Капец., что это за гости такие, которые не додумаются постучать если нет звонка
@alekseynikitin3354
@alekseynikitin3354 5 жыл бұрын
Шикарно! На просторах ютуба не встречал аналогичных видео на данную тему. Но где продолжение?
6 жыл бұрын
Est “Metro() library”. Tam to ze samoe tolko dve strocki i bezlimitnoe kolicestvo taimerov. github.com/thomasfredericks/Metro-Arduino-Wiring
@kgaussss7299
@kgaussss7299 5 жыл бұрын
Дружище, а как же внешнее прерывание? Работа идёт или не стоит ждать продолжения?
@ПантелейТюков
@ПантелейТюков 6 жыл бұрын
1 миллисекунда = 0.001с , кровь из ушей и глаз !!! аааа!!!
@ChermetIvanich
@ChermetIvanich 4 жыл бұрын
Нихуя не понял, но очень интересно.
@kennn1221
@kennn1221 6 жыл бұрын
Ну где же где же еще видео. И обещанная программа от дребезга контактов.
@СергейХхх-с7ь
@СергейХхх-с7ь 6 жыл бұрын
Как в скетче указать время в часах и минутах?
@cultofsogga5863
@cultofsogga5863 6 жыл бұрын
Вторая где часть!?
@valan7192
@valan7192 5 жыл бұрын
Только непонятно: почему миллисекунда - это одна сотая секунды???
6 жыл бұрын
Genialno. Na konec to est kanal gde obesniajut ooooocen dohodcevo. Spasibo!
@pan_electric
@pan_electric 4 жыл бұрын
Молодец и спасибо за столь хороший поясняющий видео урок. В добавок для улучшения качество звука, немного добавьте высоких частот.
@AndriiNikolaiev
@AndriiNikolaiev 4 жыл бұрын
Спасибо. А пример шедуллера можно привести?
@UrfinJus
@UrfinJus 7 жыл бұрын
непонятно, почему одна сотая секунды названа миллисекундой.(7:15). милли означает тысячную долю. ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D0%BB%D0%B8-
@LabRazum
@LabRazum 7 жыл бұрын
Да, это просто случайно потерянный нолик, приносим извинения :)
@aleksandrzv8688
@aleksandrzv8688 7 жыл бұрын
Спасибо большое.Отлично.Молодцы что оставили скетчи в ссылках,появилась возможность самому по заниматься и разобраться.
@Victor-zz1gi
@Victor-zz1gi 6 жыл бұрын
Понравилось. Интересно смотреть и слушать.
А ВЫ ЛЮБИТЕ ШКОЛУ?? #shorts
00:20
Паша Осадчий
Рет қаралды 9 МЛН
How To Get Married:   #short
00:22
Jin and Hattie
Рет қаралды 24 МЛН
The Joker wanted to stand at the front, but unexpectedly was beaten up by Officer Rabbit
00:12
Which One Is The Best - From Small To Giant #katebrush #shorts
00:17
Самая маленькая Ардуина - ATtiny10 + проект
10:37
Заметки Ардуинщика
Рет қаралды 175 М.
Светодиодный куб 8x8x8 своими руками
21:34
А ВЫ ЛЮБИТЕ ШКОЛУ?? #shorts
00:20
Паша Осадчий
Рет қаралды 9 МЛН