Forming the time delays of the microcontroller | Microcontrollers from scratch #6
Vložit
- čas přidán 9. 04. 2018
- The library of microcontroller delays is quite convenient and practical. It is called as follows: _delay_ms (777) - the time in milliseconds is specified in brackets. Also, the time can be set in the number of cycles of the microcontroller and microseconds. In this video, the #define preprocessor directive is considered, which greatly facilitates the readability of the code. Time intervals are applied to the example of flashing LEDs, which improves the visualization of this process and increases the visibility of the function _delay. However, to apply a delay, you must first connect the delay library delay.h
Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/
Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/
Вы великий человек !!! Низкий поклон ! Огромное спасибо! Храни ВАС БОГ!
Никому кроме Аллаха поклонятся нельзя!!!
Възхищавам се от професионализма и изложението! Чудесно! Благодаря!
Большое спасибо за урок! Всё понятно, доходчиво для начинающих
Творческих вам успехов!
Смотрю оба канала и многие вещи становятся понятными. Очень нравятся ваши уроки. Продолжайте дальше.
Спасибо, все просто и доступно. Действительно можно научиться)
Спасибо за уроки! Всё понятно объясняете.
Благодарю , очень все доходчиво объясняете! 🎉
Спасибо , все работает! Отличные уроки!
Спасибо за труд.
Автору большое спасибо! Такие как ТЫ,друг, помагают другим,и это достойно уважения! Из критики: записывая уроки с остановками,увеличь промежуточное время,т.е.делай паузы, чтобы всё не преврашялось в словесную кашу)
а плейер на паузу ставить не пробовали? в таких случаях помогает ))))
@@RomSimbel я не просто так написал *словесную*. Улыбнуло=)
@@RomSimbel хотя Вы правы, субтитры можно прочитать.Но я имел ввиду именно голосовое пояснение. Иногда слушаешь и на лету эксперементируешь с полученнными знаниями
Ну блин четко про задержки объяснил..До этого не понимал..Буду дальше смотреть..Если еще так и про прерывание доходчиво и понятно объяснишь, то вообще не знаю тогда, куда тебя целовать..
Ты молодец. С тобой не так страшно браться за микроконтроллеры.
Спасибо, все ясно-понятно.
Супер, очень интересно, спасибо
Спасибо, с удовольствием посмотрел)))
Спасибо большое!
Спасибо добрый человек
Большое спасибо!
Класс!
Молодец просто супер......
Спасибо автору, все работает! Любопытный вопрос: почему на выводе PC6/RESET появляется напряжение +5V ?
Спасибо
_delay_ms(500)
большое
_delay_ms(500)
!
Здравствуйте! Спасибо за ваш труд !
Я правильно понял, что с помощью данной команды(_delay_ms(500)), временная продолжительность свечения светодиода равняется его выключенному состоянию ? Т.е светодиод работает столько же, сколько он и не работает ?
Задержка перед выполнением следующей строки программы.
1. Включили диод.
2. Ждем полсекунды.
3. Выключили диод.
4. Ждем полсекунды.
5. Повтор (возврат к п. 1, то есть снова включаем диод.)
Добрый вечер. слушаю и выполняю вашу лекцию. запрограммировал два канала как читается в лекции. прошил омега 8 замигал 1 LED второй не реагирует. Померил напряжение 1,3V- пониженное напряжение я правильно понимаю. Что надо сделать чтоб 2 LED заработало.
Добрый день.
Очень полезная информация в доступной форме. Спасибо огромное!
Есть одна проблемка, не подскажите, где можно скачать Proteus? Из тех вариантов Proteus 7, что находил в инете, crack не работает, а в более поздних версиях Proteus 8.5 не работают библиотеки
Может установил неправильно. Или попробуй запустить от админа. Если будешь устанавливать снова, этот или другой, то сначала удали всё. Revounistaller прога для удааления, ей пользуюсь. А скачат протеус с рутрекера можно.
@@splinterkab9007 Спасибо за инфу.
Нашёл Proteus 8.1 Установил, всё работает.
👍
Перепутал строчные и прописные буквы, но это мелочи, уроки хорошие
Не совсем понял почему зеленый мигает два раза подряд а желтый один раз?
программа пишет такой текст и выдает три ошибки. Обучение кончилось не начавшись. В чес проблема? "mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.."
9,38 Мигание одного светодиода идет с периодичностью 2 сек. Не 0,5 сек. Мигание двух светодиодов ...1 сек.
почему тактовая частота МК 1МГЦ, разве не 8МГЦ согласно datasheet atmega8?
Встроенный генератор позволяет выбрать частоту 1, 2, 4, 8 МГц, а с внешним кварцем можно чуть ли не от 0 до 16 МГц
spasibo sa uroki. gde mogno naiti proteus bes platno?
Просто пишешь протеус скачать, и скачиваешь с официального сайта около 900мб
Дайте пожалуйста ссылку, где скачать AVRDUDE
У меня proteus выдает ошибку: mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.
(версия proteus-а демонстрационная). В демонстрационной версии должно запускаться?
Кликните 2-раза по МК на схеме ,внизу в левом углу окошко Exclude from Simulation. Поставьте галочку и OK,,, Должно сработать.У меня тоже самое было пока англоязычные видео не посмотрел не разобрался .
Ваш комментарий помог мне решить такую ж проблему. Ну теперь проблема в том что лампочка не горит, когда загружаю программу.
@@alexandersperling5728 я тогда нормальную версию в итоге поставил
@@BarVados а где вы её взяли? Я скачал на официальном сайте демо.возможно она ограниченна и по этому не даёт запрограммировать контролер.
@@alexandersperling5728 тут варианта 2либо купить, либо не покупать, если совесть позволит крякнутую поставить...
Представляю чтоб два диода мигали 500 000 команд писать 😀😀
Proteus если можно ссылку скачать . везде с вирусом.
Напишите адрес почты есть вопрос по ATmega8A
но ведь LED в данном случае уже не является константой тк ее значение изменяется, а вот MIG действительно константа
Как сделать задержку на 10 секунд?
_delay_ms(10000)?
Зачем по 10 раз писать этот порт( хватило бы двух раз же
не ной! повторение - мать учения.
а вот если самому организовать цикл из 500тыс команд, можно легко получить прерывание)
Автор мог бы и намекнуть начинающим, что Протеус крякнутый нужен.
Он может об этом и знает, но не станет во все горло говорить об этом на ютубе. Потом еще ловить страйков от правообладателей и принципиальных покупателей таких программ.
Кому надо те поймут
Ребята, у меня что-то в симуляторе протеус поочерёдно появляется единичный уровень не на нулевом и первом выводах порта D, а на нулевом и третьем !!?
100 раз проверил, не могу найти ошибку, вроде ж всё как у автора :
int main(void)
{
DDRD=0b00000011;
while (1)
{
PORTD=00000001;
_delay_ms(500);
PORTD=00000000;
_delay_ms(500);
PORTD=00000010;
_delay_ms(500);
PORTD=00000000;
_delay_ms(500);
}
}
Обидно!!
Вы забыли поставить 0b перед значениями, поэтому он эти числа не воспринимает как двоичные.
@@Ivan-rc4it Большое спасибо!
@@Ivan-rc4it спасибо
DDRD = 3
.....
PORTD = 1;
_delay_ms(500);
PORTD = 0;
_delay_ms(500);
PORTD = 2;
_delay_ms(500);
PORTD = 0;
_delay_ms(500);
Так будет работать. Хотя в двоичной проще для представления происходящего. Ну и нули можно не писать. Наприме PORTD = 0b00000000; можно заменить на PORTD = 0; а например PORTD = 0b00000010; на PORTD = 0b10;
А то столько нулей печатать рука устанет.
про то что человек не видит больше 24 кадров - миф и бред.
сравните плавность какой-нибудь игры на 30 фпс и 60, да и моники в 144Гц не просто так существуют.
Здесь немного другое имеется ввиду. Эффект превышения 24 кадров может легко почувствовать, если будете смотреть на колесо автомобиля или лопасть вертолета, которая очень быстро вращается. Если она будет вращаться со скоростью выше 24 оборотов в секунду или больше 1500 оборотов в минуту. То будет казаться, что он вращается медленно и в обратную сторону.
#define F_CPU 1000000UL
#include
#include
int main(void)
{
DDRD=0b000000011;
// назначаем порд Д0 и Д1 как выходной
while (1)
{
PORTD = 0b00000001;
//подаем 5 В на Д0
_delay_ms(500);
//задерка в 1/2 с
PORTD = 0b00000000;
// отводим 5 В с порта Д0
_delay_ms(500);
PORTD = 0b00000010;
//подаем 5 В на Д1
_delay_ms(500);
PORTD = 0b00000000;
_delay_ms(500);
}
}
Здравствуйте. Помогите , пожалуйста , какие бы порты я не брал "C,B", у меня пермонентно горят все порты D, даже те на которых стоит логический "0".Проверял привязку контроллера к файлу hex , чего только не делал , не помогает
1. Проверь, тот ли контроллер прошиваешь
2. Проверь схему внимательно, есть вариант, что светодиоды на +5 включены, а не на минус
3. Дохлый контроллер, воткни второй такой же, если все повторится - см п.1,2
применение функции дефайн не упрощает, а наоборот архиусложняет понимание кода программы. ладно если этих дефайнов один или два. А если их 15? С налёту хрен запомнишь что на что меняется. сиди тыркайся что куда чего
когда я начинал учить программирование микроконтроллеров то так же как и Вы думал, но сейчас понимаю, что это намного проще как рассказывает автор. Со времен, если Вы не забросите то почувствуете как это упрощает.
Ну можно например написать так.
#define LED_ON PORTC = 1
#define LED_OFF PORTC = 0
Или по маске проще, чтоб включить нужный светодиод. Тпа такого.
#define LED_ON PORTC |= 0b1
#define LED_OFF PORTC &= ~0b1
.....
LED_ON;
_delay_ms(500);
LED_OFF;
_delay_ms(500);
И мигай диодом сколь хочется и в любом месте кода можно вставить. Если тут можно запутаться, то он ещё про функции не рассказывал.
Какой 25й кадр.. о боже...
это к тому, что начиная с 24 гц и выше создаётся иллюзия плавного движения и мозг не воспринимает кадры, как отдельные картинки! Но, конечно, можно заметить мерцание или врезку лишнего кадра.
Это ж очень сложно понять, да?
вы же знаете что автор просто перезалил эти уроки с другого канала?
С какого?
Владелец каналов "Electronics Club" и "МИКРОКОНТРОЛЛЕРЫ С НУЛЯ" один и тот же.
Закрыл видео после фразы: "мало кто видит даже 25-й кадр"
ага, прям как консольщики, которые не видят больше 30 фпс :D
Это правильно. Если человек, выпустивший данное видео, не понимает как работает человеческое зрение, то и в микроконтроллерах он вообще ничего не понимает и ничего дельного сказать не может. Просто возможно вам стоило зайти на канал с медицинской тематикой, если вы хотели узнать про 24 кадра и человеческое зрение.