Динамическая индикация | Часть 2 | Программирование микроконтроллеров AVR

  Рет қаралды 34,238

Dmitriy Zabarilo

Dmitriy Zabarilo

Күн бұрын

Рассмотрено алгоритм написания кода для подключения динамической индикации к микроконтроллерам.
Электроника для начинающих: • Урок 1. Что такое ЭЛЕК...
Статья на моем сайте: diodov.net/din...
Ссылки на покупку полезных элементов, необходимых для успешного изучения программирования микроконтроллеров AVR.
Сначала рекомендую получить ВЫСОКУЮ СКИДКУ НА ВСЕ ПОКУПКИ: ali.pub/3mulxb
Микроконтроллеры ATmega8: ali.pub/3muk7a
Программатор AVRASP: ali.pub/3mtqa2
Программатор AVRASP в хорошем корпусе: ali.pub/3mtqxz
Программатор STK500: ali.pub/3mtril
Программатор TOP3100, который программирует ВСЕ: ali.pub/3mtsgt
Макетная плата: ali.pub/3mtvcu
Удобная макетная плата: ali.pub/3mtvyt
Серьезная макетная плата: ali.pub/3mtx4m
Гибкие перемычки для макетной платы: ali.pub/3mtxj0
Перемычки в пенале 14 видов 140 штук: ali.pub/3mtxtw
Набор резисторов 600 штук, 30 номиналов по 20 штук: ali.pub/3muaey
Набор светодиодов разных цветов 300 штук: ali.pub/3mubp1
Набор транзисторов: ali.pub/3muc1h
Семисегментные индикаторы: ali.pub/3muisx
Тактовые кнопки: ali.pub/3muj92
#ДинамическаяИндикация #Микроконтроллеры #ATmega8 #AVR

Пікірлер: 53
@Программированиемикроконтролле
@Программированиемикроконтролле 3 жыл бұрын
Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/ Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/
@rostuslavb3524
@rostuslavb3524 Жыл бұрын
дякую за уроки! дуже докладно і просто рокладено все по поличках!!!
@kosmos8460
@kosmos8460 2 жыл бұрын
Хороший канал , ведущий однозначно толковый и понятливый для обучения 👍 жаль что больше не делает продолжения канала , спасибо за проделанный материал
@abdurahmann1
@abdurahmann1 Жыл бұрын
в 46-летнем возрасте с нуля изучать уже тяжеловато, но я по некольку раз просматривая кадры, периодически останавливаю воспроизведение и в Атмел студио7 набираю код. Перепроверяю по многу раз, и всё равно ошибки типа скобок, точек с запятой и т.п. Начал теряться в коде уже в начале уроков. Но решил с самого начала набрать коды для всех уроков и осуществлять на практике. Собрал схему "в железе", всё работает как надо. В Протеусе тоже работает. Понял,что пока все досконально не визуализируешь в своей голове и наизусть не выучишь коды, то в уме не сформируются шаблоны для дальнейшего самостоятельного написания программ в своих личных вариациях и видоизменениях. Тяжелый длительный мозговой штурм. Но радость от осознания, что получается ни с чем не сравнима, это факт! Плюс тренировка памяти и внимания, чтобы с возрастом мозги не усыхали. Зато, возможно, к старости сохранишься в трезвом уме и твердой памяти. Автору огромный респект и поклон от всей души! Талант педагога и желание автора сделать этот мир светлее внушают оптимизм! Спасибо Вам !!!
@АндрейБерилло-и7ь
@АндрейБерилло-и7ь 4 жыл бұрын
Уроки бомбовские, спасибо огромное! На будущее есть маленькое замечание по стилю присвоению имени функции или переменной. В языках программирования принято давать названия на английском языке, например вместо слова chislo надо писать number, а вместо vse chisla - numbers or AllNumbers.
@TrasherFCR
@TrasherFCR 3 жыл бұрын
Я когда учился по книге прогерить на Visual Basic 6, автор книги еще рекомендовал указывать тип переменной в имени, например: intNumber.
@АлександрАкулин-ч5ъ
@АлександрАкулин-ч5ъ 2 жыл бұрын
@@TrasherFCR не подскажешь хороший учебник начинающему по авр на языке си?
@TrasherFCR
@TrasherFCR 2 жыл бұрын
@@АлександрАкулин-ч5ъ неа, я сам только этому учусь. Пока не нашел какой-либо книги. В основном тут на ютубе смотрю видосы.
@zakirmammadov9146
@zakirmammadov9146 2 жыл бұрын
@@АлександрАкулин-ч5ъ Брайан Керниган и Деннис Ритчи Язык прогроммирование С второе издание
@ДенисЗахаров-ц6и
@ДенисЗахаров-ц6и 10 ай бұрын
@@zakirmammadov9146 Большое спасибо за подсказку!!)
@АлексейКлимов-г4з
@АлексейКлимов-г4з 5 жыл бұрын
Скажите, а возможно в данной программе дизассемблировать hex файл? Чтобы получить сам текст программы.
@АртемЭлектроника
@АртемЭлектроника 5 жыл бұрын
1987 -- это год вашего рождения))))???? хоть и смонтирован кадр к кадру))) все равно очень понятно и приятно смотреть) 👌
@sskdll
@sskdll 5 жыл бұрын
А почему в качестве переменной массива использована переменная unsigned int, а не unsigned char? Это потому что сумма значений чисел в массиве больше чем может принимать переменная char?
@НариманСимаков-я6ъ
@НариманСимаков-я6ъ 4 жыл бұрын
при 10 мс в протеусе нормально показывает
@splinterkab9007
@splinterkab9007 4 жыл бұрын
Да и без задержек тоже нормально.
@ale-zhu
@ale-zhu Жыл бұрын
Как же ты не "любишь" циклы... #include #define F_CPU 1000000UL #include #include #define DELAY_MS 300 #define NUMBER_PORT PORTD #define PARTNUM_PORT PORTB #define byte unsigned char byte numbers[10] = { // цифры от 0 до 9 0x3f, 0x6, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x7, 0x7f, 0x6f }; byte part[4] = {0}; void parse_value(unsigned int value) { byte *ptr = part; for (int i = 0;i
@upgradeanimate5314
@upgradeanimate5314 10 ай бұрын
Спасибо за цифры, впадлу было вписывать, тут нашёл
@MrDieFast
@MrDieFast 4 жыл бұрын
Функция vse_chislo это просто угар))) uint8_t digits[4] = {0}; void find_digits(uint16_t num) { for (uint8_t i = 3; i < 255; i--) { digits[i] = num % 10; num /= 10; } } А вообще канал хороший
@alexnu3316
@alexnu3316 3 жыл бұрын
вот это круто
@TrasherFCR
@TrasherFCR 3 жыл бұрын
Что за uint8_t и uint16_t ? Почему в цикле "for" i < 255 ? Что значит i-- ? Просто на C никогда не программил, лет 15 назад увлекался программированием на Visual Basic 6, но там само собой иначе многие моменты.
@romanbru9504
@romanbru9504 2 жыл бұрын
@@TrasherFCR uint сокращение от unsigned integer, далее смотрите урок по операции for на канале, i переменная, i-- уменьшается до 0... Разберетесь если посмотрите весь курс сначала и почитаете про for
@kumelektronik340
@kumelektronik340 Жыл бұрын
Для всех инфо : все работает, если вместо транзисторов в Proteuse использовать inverter(ы) без всяких сопротивлений.
@Фрингл
@Фрингл 3 жыл бұрын
Них#я не понял
@IvanFedulov
@IvanFedulov 3 жыл бұрын
хорошие уроки у вас, но транслит в именах переменных и функций - просто кровь из глаз.
@elektro-mechanic6497
@elektro-mechanic6497 4 жыл бұрын
Здравствуйте. Отличная подача материала - все подробно! Начал изучать МК, ваш канал для меня Лучший. Для вас это хобби или работа?
@DevilByte
@DevilByte Жыл бұрын
привет! являюсь обладателем твоих курсов. Застрял как раз на 7 уроке. ПРоблема в следующем - когда в while(1) указываю функцию vse_chislo(1234), то при попытке присвоить массиву любое значение разряда, дисплей просто не загорается, если закомментировать vse_chislo(1234), то данные из разрядов нормально дают нули, а данные из массива нормально отображаются
@ВаськаСмирнов-р9ъ
@ВаськаСмирнов-р9ъ 3 жыл бұрын
У неня один вопрос сколько времени(сколько тактов процессора) выполняется функция vse_chislo(). Если вся задача МК выводить 4 разряда, то нет вопросов.
@RadFinder
@RadFinder 4 жыл бұрын
Блин вот именование функций и переменных как то совсем не в тему. Было бы логичнее функцию назвать "разбивкой" а переменную "все_число".
@zipri9576
@zipri9576 2 жыл бұрын
Огромный респект тебе за уроки. И спасибо! Эти уроки помогли сделать курсовые многим студентам!!!
@Тесла-ф3в
@Тесла-ф3в 3 жыл бұрын
Гениально. Си-это великий язык. Спасибо учитель!
@KONARTIK1
@KONARTIK1 2 жыл бұрын
Обнуляйте все порты В, и будет вам индикация.
@LoyalLuckyAngel
@LoyalLuckyAngel 5 жыл бұрын
Большое спасибо. Все было понятно и по существу.
@vitalikdm0685
@vitalikdm0685 5 жыл бұрын
Спасибо за видео - как всегда по существу, четко и понятно. Вызов функции vse_chislo() не помешалобы вынести за цикл выше, чтобы не нагружать процессор лишними вычислениями
@splinterkab9007
@splinterkab9007 4 жыл бұрын
А если нам нужно постоянно его считать?
@avr_stm_pro2955
@avr_stm_pro2955 6 жыл бұрын
Спасибо!!!
@ДанькоГусаківский
@ДанькоГусаківский 6 жыл бұрын
Цікаве повчальне відео. Від мене лайк.
@916363
@916363 3 жыл бұрын
А почему, при разбиении числа 1987 на сегменты, нельзя было применить преобразование в массив символов строки? Или ... В цикле While N > 0 {N%10; N = int(N/10)} ... ну как-то так? Т.е. получать числа не со станшего разряда, а с младшего.
@panzerlo3418
@panzerlo3418 2 жыл бұрын
Когда-то давно я на Pascal как учебную задачу тоже писал программу на разделение по разрядам, и формирование на основе полученного номера римскими цифрами. Но это не для контроллеров, а как приложение.
@dtuhfscbhy6957
@dtuhfscbhy6957 3 жыл бұрын
не понял а зачем задержку вообще ставить 3мсек? если не ставить то загорится на 1милион секунды потом через 4мил сек опять загорится, по идее это тоже самое что и шим, должно быть видно
@bozhkou
@bozhkou 3 жыл бұрын
В цикле, делим на 10, количество делений = количеству разрядов, остаток от деления записываем в разряд. в пару строк и в одном цикле. Все что нужно менять, это количество разрядов и число которое хотим отобразить
@ЕвгенийБондарев-к7ф
@ЕвгенийБондарев-к7ф 10 ай бұрын
Благодарю автора за столь прекрасный урок🎉
@Perepodvyvert_s_perevorotom
@Perepodvyvert_s_perevorotom 6 жыл бұрын
Спасибо.
@АлексейАнистратов-б6з
@АлексейАнистратов-б6з 5 жыл бұрын
Спасибо!
@АлексейНаумов-д5ъ
@АлексейНаумов-д5ъ 2 жыл бұрын
Почему нельзя перевести в строчку и использовать символы по порядку в этой строке?
@ale-zhu
@ale-zhu Жыл бұрын
Потому что это медленно
@aleksivanov9137
@aleksivanov9137 4 жыл бұрын
Спасибо.Класс!!!
@eternal_wanderer_ru
@eternal_wanderer_ru 5 жыл бұрын
Зачем тип int для числа от 0-9?
@denpar5450
@denpar5450 5 жыл бұрын
atmel studio почему-то не понимает тип byte. unsignet int понимает. да и в ролике сказано, что целочисленный тип переменной отбрасывает сотые и десятые от получившегося числа,в результате матем.вычислений. а как раз тут не нужны всякие дроби.
@eternal_wanderer_ru
@eternal_wanderer_ru 5 жыл бұрын
@@denpar5450 , Для этого есть uint8_t
@denpar5450
@denpar5450 5 жыл бұрын
@@eternal_wanderer_ru благодарю,за совет.
@TrasherFCR
@TrasherFCR 3 жыл бұрын
@@denpar5450 О! разбирающийся человек. Скажите, пожалуйста, почему тип переменной unsigned int, а не просто int ? Что за unsigned ? Что это меняет?
@denpar5450
@denpar5450 3 жыл бұрын
@@TrasherFCR int может содержать значения от -32767 до 32767, unsigned int от 0 до 65535. Благодарю Вас ,за восхищение моими безграничными знаниями.
Динамическая индикация | Часть 3 | Программирование микроконтроллеров AVR
9:23
Программирование микроконтроллеров для начинающих!
Рет қаралды 27 М.
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Рет қаралды 468 М.
iPhone or Chocolate??
00:16
Hungry FAM
Рет қаралды 40 МЛН
小丑妹妹插队被妈妈教训!#小丑#路飞#家庭#搞笑
00:12
家庭搞笑日记
Рет қаралды 38 МЛН
GIANT Gummy Worm Pt.6 #shorts
00:46
Mr DegrEE
Рет қаралды 94 МЛН
Стойкость Фёдора поразила всех!
00:58
МИНУС БАЛЛ
Рет қаралды 3,5 МЛН
Динамическая индикация | Часть 1 | Программирование микроконтроллеров AVR
17:26
Программирование микроконтроллеров для начинающих!
Рет қаралды 50 М.
Аналогово-цифрофой преобразователь АЦП | Программирование микроконтроллеров AVR
32:04
Программирование микроконтроллеров для начинающих!
Рет қаралды 53 М.
Cдвиговые регистры 74HC595 и 74HC165
6:08
Максим Обухов
Рет қаралды 35 М.
I / O Ports | The first program | Microcontrollers from scratch #4
19:06
Программирование микроконтроллеров для начинающих!
Рет қаралды 151 М.
Умный ВОЛЬТМЕТР своими руками | Программирование микроконтроллеров AVR
11:26
Программирование микроконтроллеров для начинающих!
Рет қаралды 35 М.
A capacitors voltage divider
6:11
ElectronicsClub
Рет қаралды 144 М.
Урок 27. EEPROM настройки | Часть 1 | Программирование микроконтроллеров AVR
29:25
Программирование микроконтроллеров для начинающих!
Рет қаралды 49 М.
EEPROM AVR | Часть 2 | Программирование микроконтроллеров AVR
20:29
Программирование микроконтроллеров для начинающих!
Рет қаралды 35 М.
iPhone or Chocolate??
00:16
Hungry FAM
Рет қаралды 40 МЛН