Программирование МК AVR. Урок 12. LCD индикатор 16x2. Часть 5

  Рет қаралды 20,392

narod stream

narod stream

Күн бұрын

Пікірлер: 109
@Serious_Sam
@Serious_Sam 2 жыл бұрын
Не указали, что подключаете библиотеки использующие wchar_t. Сам своим пешком доходил, что что-то не подключено. Матанул туда, где у вас верхушка кода и узрел заветные #include и #include ))))) А в целом, как и всегда, огромное спасибо!
@sanysheva5772
@sanysheva5772 3 жыл бұрын
Занимаюсь самостоятельно по Вашим урокам, книга тоже очень хорошо но когда материал излагает человек то материал усваиваэтся гораздо лучше. Спасибо Вам за огромный труд.
@alexanderlipko169
@alexanderlipko169 4 жыл бұрын
Спасибо за Ваши уроки! Начал знакомиться с программированием на Ардуино. Но понял ,что без знаний основ не обойтись. Ваши уроки (а это практические занятия) помогают осваивать язык "С". Используя Студию-7 и Протеус удалось запустить LCD 1602. На очереди 2004А. Еще раз огромное спасибо!
@shockblaze8669
@shockblaze8669 4 жыл бұрын
Я в восторге!!! У меня проект есть на ардуино IDE, ради смеха просто скопировал отсюда библиотеку дисплея, из другой серии видеоуроков ещё одну и что вы думаете заливаемая прошивка в 2 раза меньше!!! Мужик, большое спасибо. Не слов чтобы выразить благодарность. Благодаря таким людям хочется изучать С дальше
@JustNick34
@JustNick34 6 жыл бұрын
Спасибо за информацию с созданием библиотеки, очень помогло!
@АлександрАлександр-ш9о4в
@АлександрАлександр-ш9о4в 8 жыл бұрын
Благодаря вашим урокам я довольно быстро разобрался с дисплеем, поэтому огромное спасибо!
@narodstream552
@narodstream552 8 жыл бұрын
И Вам спасибо за такую высокую оценку! Я рад, что Вы смотрите мои видео и что они Вам помогают, что я не зря занимаюсь этим делом.
@4ipers886
@4ipers886 8 жыл бұрын
Здравствуйте. Спасибо за ваши уроки. Но здесь многим интересно, как создавать свои символы, могли бы вы пожалуйста, дать ссылку на подобное или создать урок. Спасибо
@narodstream552
@narodstream552 8 жыл бұрын
Здравствуйте! И Вам спасибо! Пока не пробовал, но там много не создашь, очень мало под это памяти. Время будет, подумаем что-нибудь на этот счёт.
@4ipers886
@4ipers886 8 жыл бұрын
Я понимаю, что там мало памяти, но для примера любой символ, например сердечко или звездочка) Интересно понять алгоритм создания. Еще раз спасибо за вашу работу !
@Yupitrer
@Yupitrer 6 жыл бұрын
Не зря.
@Pavel-ne2mf
@Pavel-ne2mf 9 жыл бұрын
спасибо Вам за уроки! лучше ваших пока не видел
@remontlive
@remontlive 5 жыл бұрын
Спасибо огромное за такой огромный труд! Очень доступно объясняете!
@АлтынбекАнарбекуулу-в7ъ
@АлтынбекАнарбекуулу-в7ъ 8 жыл бұрын
Спасибо вам огромное за такое понятное видео!!!
@narodstream552
@narodstream552 8 жыл бұрын
А Вам спасибо за оценку!
@blacksn48
@blacksn48 8 жыл бұрын
Круто,спасибо за урок!! Очень хорошо объясняете.
@DrargonsM
@DrargonsM 9 жыл бұрын
наконец то показал экран.... а то программа символы...
@СергійОлександрович-ч2б
@СергійОлександрович-ч2б 2 жыл бұрын
Спасибо! сделайте урок там где можно 8 своих символов выводить, пожалуйста.
@Ivan-rc4it
@Ivan-rc4it 5 жыл бұрын
Добрый день. Не понимаю логику организации файлов. 1. У нас есть главный файл Test09.c и заголовочный main.h в который мы вынесли определенную информацию. Для того, что бы Test09.c увидел main.h мы прописали в Test09.c include. Тут все понятно, но дальше начинается абракадабра какая то. 2. Создаем файл lcd.h. Почему в нем идет подключение main.h, а main.h подключение lcd.h. Как это работает если они ссылаются друг на друга - это какая то цикличность получается. 3. Как Test09.c видит lcd.c. Если Test09.c подключает main.h, а main.h подключает lcd.h, а lcd.h ничего не знает о lcd.c. Кто мне сможет объяснить или дать ссылку на источник где объясняется логика поведения данных подключений?
@VVShaden
@VVShaden 7 жыл бұрын
Поскольку дисплеи на Али китайские, то даташит читать полезно, но не очень. Потому как в моем случае железка мега 88, (нет смд меги8 в наличии, а я работаю с смд), и дисплей 2004а, но это пофиг. С 1602а китайским то же самое было. Так вот, задержки из урока нужно сменить для корректной инициализации лсд. Полный запуск ждем не 15 мсек, а *40 мсек,* и тогда инициализируется норм. Задержки из реального проекта, спасибо Илье Ананьеву.
@narodstream552
@narodstream552 7 жыл бұрын
Надо попробовать. Спасибо! Я об этом думал. Просто мои дисплеи практически все работают и на таких задержках, наверно качественные попались.
@VVShaden
@VVShaden 7 жыл бұрын
narod stream Вам спасибо за уроки, отличная работа!
@ДанилаДанила-э8с
@ДанилаДанила-э8с 3 жыл бұрын
на AtmelStudio7 тип wchar_t не определялся. запустилось с типом char, правда ругнулось что то. не знаю как тут поменять настройки компилятора.
@ДанилаДанила-э8с
@ДанилаДанила-э8с 3 жыл бұрын
ага, небыло библиотек #include #include
@ВячеславВасильев-з6е
@ВячеславВасильев-з6е 8 жыл бұрын
Спасибо за урок. Попробую. На Ардуино подключал. Но там серьезного кода не напишешь.
@Integral2128
@Integral2128 3 жыл бұрын
на моей макетной плате удобно запаять экранчик вверх ногами, но проблема с отображением... есть ли функции инициализации что бы ориентация отображения была вверх ногами? Т.е. один раз при инициализации лсд задал как отображать и все, не переделывать же все функции для ориентации вверх ногами...
@Vivavatnik
@Vivavatnik 7 жыл бұрын
спасибо!!!
@tupoy_ytub_uberi_psevdonim
@tupoy_ytub_uberi_psevdonim 3 жыл бұрын
у меня на экране "мусор", почему то у вас я не вижу кманду очистки видеопамяти, я ее применил и у меня все стало хорошо.
@АндрейВолгусов-ш3д
@АндрейВолгусов-ш3д 2 жыл бұрын
здравствуйте, начал изучать программирование AVR по вашим урокам, пишу в AtmelStudio 7.0, при вводе void port_ini(void) постоянно выдает предупреждение Severity Code Description Project File Line Warning no previous prototype for 'port_init' [-Wmissing-prototypes] LCD_display E:\projekt AVR\LCD_DISPLAY\LCD_display\src\main.c 13 не могу понять чего он хочет.
@Dmitrii82
@Dmitrii82 6 жыл бұрын
deprecated conversion from string constant to 'char*' вот такое предупреждение, что это?
@Alex-fx7ie
@Alex-fx7ie 6 жыл бұрын
Здравствуйте, Как доработать код чтобы была возможность выводить переменные? например: int c = 10; setpos(0,0); str_lcd(c);
@ljlegas
@ljlegas 9 жыл бұрын
помогите с этим wchar_t!!!( Error 1 unknown type name 'wchar_t') почему так не знаю!
@Красный-ц9ч
@Красный-ц9ч 7 жыл бұрын
В main.h подключи две библиотеки: #include #include
@AVRshik
@AVRshik 7 жыл бұрын
Спасибо, помогло
@ДмитрийСтешенко-х6г
@ДмитрийСтешенко-х6г 6 жыл бұрын
uint8_t n; и дело в шляпе
@АйдарФатхетдинов-ф9т
@АйдарФатхетдинов-ф9т 6 жыл бұрын
'else' without a previous 'if' добрый день вот такая ошибка преследует меня уже в 4 части этого урока . что можно изменить!????? AtmelStudio 6.0 использую
@vstad1
@vstad1 6 жыл бұрын
Возможно надо удалить ';' перед else
@kosmos8460
@kosmos8460 3 жыл бұрын
Тоже самое !
@MrMetromann
@MrMetromann 4 жыл бұрын
У меня в протеусе на дисплее вторая строка не появляется, а если в МК заливаю, то там всё нормально отображается. может в протеусе в настройках дисплея что-то поменять?
@ВячеславВасильев-з6е
@ВячеславВасильев-з6е 8 жыл бұрын
Еще раз спасибо за урок. Понравилась та часть, где вы наводите красоту в коде. Вопрос такой. В ваших уроках по STM32 есть подобный рассказ? Я пока не нашел. Там в кейле все по-другому. Я попытался сделать подобное, но у меня все поехало.
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо!
@АндрейБолотов-ю7ю
@АндрейБолотов-ю7ю 4 жыл бұрын
Спасибо за урок! Подскажите пожалуйста, как вывести переменную на дисплей?
@minnegulov01
@minnegulov01 2 жыл бұрын
сначала цифру объявляешь переменной ( например char i=5;), потом пишешь septos и sendchar(i%10+0x30);
@vstad1
@vstad1 6 жыл бұрын
Добрый день, согласно даташиту дисплея в инициализацию входит также очистка дисплея, у вас очистка вынесена как отдельная функция, почему?
@narodstream552
@narodstream552 6 жыл бұрын
потому что так удобно и читабильно.
@vstad1
@vstad1 6 жыл бұрын
@@narodstream552 понял, думал это какой-то хитрый ход.
@Dmitrii82
@Dmitrii82 7 жыл бұрын
перепрописал lcd.h ругаться перестал но так первую строчку и не пишет а в первой строке сразу вторую
@nightfury9049
@nightfury9049 8 жыл бұрын
Спасибо вам большое, за ваши уроки! Подскажите пожалуйста, использую дисплей PC2004lrs, формата 20 на 4. С вашим кодом работает, но только первая и вторая строки, при попытке установить setpos(0,3) или (0,4), надписи перескакивают с 3 строчки на 1, а с 4 на 2. Что подправить нужно?
@narodstream552
@narodstream552 8 жыл бұрын
Или понапутано что-то в адресации DDRAM или у Вас по другому DDRAM организовано. Смотрите документацию имено к Вашему модулю
@nightfury9049
@nightfury9049 8 жыл бұрын
+narod stream имеете в виду видимую и не видимую область памяти? На вашем дисплее это 0х40?
@narodstream552
@narodstream552 8 жыл бұрын
Игорь Night Fury нет ввобще организация, таблица есть в даташите
@nightfury9049
@nightfury9049 8 жыл бұрын
В даташите ничего не нашёл про структуру памяти, как было в вашем. www.atel.ru/docs/PC2004LRS-BNH-B.pdf
@narodstream552
@narodstream552 8 жыл бұрын
Действительно не видно, попробуйте поотправлять по разным адресам
@Voron_kor
@Voron_kor 7 жыл бұрын
Доброе время , а как изменить ваш пример , что бы дисплей с порта d на порт c перенести ?
@VVShaden
@VVShaden 7 жыл бұрын
Ну использовать порт с, а что не так? 6 выводов для подключения есть, по крайней мере на моей 88 меге в 32pin tqfp.
@AlekseiChip
@AlekseiChip 8 жыл бұрын
Огромное спасибо за ваши уроки, вы у поминали о том что на данный дисплей можно вывести Русскоязычные символы, урок по русификации дисплея будет?
@narodstream552
@narodstream552 8 жыл бұрын
+AlekseiChip Как таковой русификации нет и русских символов у дисплея не существует. Есть некая память, в которой можно создать свои символы. И их только 8. А если учесть, что некоторые латинские символы такие же как и русские, то может получиться неплохой текст. Не планировал, но возьму на заметку.
@LEDCUSTOMSUFA
@LEDCUSTOMSUFA 8 жыл бұрын
Здравствуйте! Пытаюсь вот отредактировать код, используя дополнительные заголовочные и С файлы. У меня вопрос, а можно ли вынести объявление переменных в отдельный файл?
@narodstream552
@narodstream552 8 жыл бұрын
Здравствуйте! Конечно можно. Если они глобальные для данного модуля. Мы так и делаем в будущих уроках
@LEDCUSTOMSUFA
@LEDCUSTOMSUFA 8 жыл бұрын
Имеется ввиду глобальные для всего проекта? А чем отличается объявление глобальных переменных от обычных? Подскажите пожалуйста.
@LEDCUSTOMSUFA
@LEDCUSTOMSUFA 8 жыл бұрын
Объявляю переменную в C файле (в самом началае, НЕ в теле функции), в этом С файле её видно, а в функции main главного С файла её не видно....
@narodstream552
@narodstream552 8 жыл бұрын
1. Обычные переменные или локальные находятся внутри тела отдельно-взятой функции. Глобальные для модуля написаны уже не внутри а вначале модуля независимо в каком файле - в основном СИ-файле или в каких-то подключенных к нему, так как подключение - это то же самое, как если бы код подключенного файла был бы в самом файле, к которому подключили. Глобальные для всего проекта не бывают. Их уже нужно организовывать. Объявляете переменную в одном модуле, а в другом потом ещё раз объявляете с тем же именем, но впереди пишете слово extern. 2. Конечно не видно. Да она там и не нужна.
@LEDCUSTOMSUFA
@LEDCUSTOMSUFA 8 жыл бұрын
Спасибо! Но мне всё же нужна эта переменная в обоих файлах Си :-)
@ЛПХсНулЯ-и1л
@ЛПХсНулЯ-и1л 8 жыл бұрын
Здравствуйте Сделал все как в ваших уроках даже ваш код пробовал но ни как не хочет лсд дисплей выводить на экран текст показывает одни кубики. В чем может быть проблема подскажите пожалуйста? 3 день маюсь все что мог перепробовал. В протеусе все работает. Использую Atmega16. Осциллографам проверял вроде сигналы мк посылает.
@narodstream552
@narodstream552 8 жыл бұрын
Кто его знает, может неточные тайминги, контроллер другой все-таки. Возможно и дисплей немного другой. Поэтому подсказать что-то очень тяжело, не имея в руках устройства.
@ЛПХсНулЯ-и1л
@ЛПХсНулЯ-и1л 8 жыл бұрын
Дисплей один в один как у вас в уроках 1602a. Светодиодом проверял примерно в секунду мигает раз при 8МГц внутрений кварц использую. Придут с китая меги 8 попробую на них. А может из-за разности длинны проводов проблемы?
@narodstream552
@narodstream552 8 жыл бұрын
Антон Верховых Вряд ли, т.к. частоты очень небольшие. Провода некритичны.
@ЛПХсНулЯ-и1л
@ЛПХсНулЯ-и1л 8 жыл бұрын
Здравствуйте скинти пожалуйста FUSE для ATMEGA 8
@narodstream552
@narodstream552 8 жыл бұрын
Здравствуйте! В одном из первых занятий я показывал, какие именно фьюзы включать.
@AleksejKirichenko
@AleksejKirichenko 9 жыл бұрын
тут на шол ошибку for(n=0;str1[n]!='\0'; n++) sendchar(str1[n]); под str1 подчеркивается а вот эта переменная wchar_t n; не капелируется
@narodstream552
@narodstream552 9 жыл бұрын
+K.A.V MAKAR #include #include
@AleksejKirichenko
@AleksejKirichenko 9 жыл бұрын
почему-то в этой строке выдает ошибку и не капелируется wchar_t n; for(n=0;str1[n]!='\0'; n++) sendchar(str1[n]); под str1 подчеркуеться
@narodstream552
@narodstream552 9 жыл бұрын
+K.A.V MAKAR Я в контакте ответил. Когда функцию объявляли, вместо str1 написали ctr1
@ДмитрийСавин-ъ9ъ
@ДмитрийСавин-ъ9ъ 8 жыл бұрын
Сделайте урок по добавлению русских символов, пожалуйста.
@narodstream552
@narodstream552 8 жыл бұрын
Дмитрий Савин где-то есть уже. Но я подумаю.
@alexeysavostin
@alexeysavostin 8 жыл бұрын
Добрый день, ломаю голову lcd дисплей никак не заводится, ваш код компилируется, в протеусе работает, а при прошивке контроллера просто горят все квадраты двух строк. Может кто подскажет? Использую МК ATMega328p (учел это при создании проекта)
@narodstream552
@narodstream552 8 жыл бұрын
Добрый день! Может несовпадение частоты? Фьюзы правильно прошиты, именно под ту частоту, которая в проекте? Такое впечатление, что дисплей у Вас не вошел в 4х-битный режим.
@alexeysavostin
@alexeysavostin 8 жыл бұрын
Вроде бы да: из программы avrdude_prog сверху вниз 3F D8 E2 05. Дисплей рабочий, проверил его на arduino при той же схеме подключения)))).
@alexeysavostin
@alexeysavostin 8 жыл бұрын
инверсные...
@narodstream552
@narodstream552 8 жыл бұрын
Все равно частоту проверьте. Создайте проект пустой по миганию одним светодиодом раз в секунду и прошейте. Светодиод при несовпадении частоты будет мигать не с той частотой, которая будет указана в строке в проекте. Хотя если у Вас кварцевый резонатор, то такого быть не должно. Вообще фьюзы у 8 атмеги и 328 совершенно разные. Я уже с 8 фьюзами убил одну 328ю.
@alexeysavostin
@alexeysavostin 8 жыл бұрын
+narod stream Спасибо за ваши ответы. Поправку на мк я делаю при выставлении фьюзов, работала мигалка по времени вроде как надо, запустил шим по аналогии, но с жк ступор
@estweetart
@estweetart 4 жыл бұрын
Спасибо Вам за 12 урок, многое прояснило. Но вот вопрос, если я хочу использовать 2а LCD дисплея(по разным портам), как быть? Спасибо! Ах да, где то тут видел интересный коммент, продублирую: "Привет из 2020го!" =)
@B5U8
@B5U8 Жыл бұрын
Привет из 2023
@abdulqadirahmedli610
@abdulqadirahmedli610 3 жыл бұрын
MesAllah halal olsun size. Allahın iznilə çətin işləri çözə bilirsiniz.
@Dmitrii82
@Dmitrii82 7 жыл бұрын
ругается на #include "lcd.h" во вкладке main.h причем дважды и не выводит на дисплей первую строку а сразу вторую. в чем может быть причина?
@VVShaden
@VVShaden 7 жыл бұрын
дисплей 1602 или 2004? если нужно, могу скинуть свой вариант, все работает с моим 2004а.
@СашаОліярник
@СашаОліярник 9 жыл бұрын
нормально
@Attenyuator
@Attenyuator 6 жыл бұрын
Как писать русскими буквами? Дисплей дорогой с кирилицей.
@narodstream552
@narodstream552 6 жыл бұрын
У меня нет дисплея дорогого с кириллицей.
@черныйваня-ь4з
@черныйваня-ь4з 3 жыл бұрын
(unknown type name `wchar` ) не могу откомпилировать все время выскакивает эта ошибка может кто подскажет как надо писать.???
@nonstop3886
@nonstop3886 2 жыл бұрын
Подключи stdlib.h
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН
UI на ESP32 своими руками при помощи LVGL
12:34
Kirill Ivanychev
Рет қаралды 8 М.
Ракета Х-59м2а все внутренности
17:52
Скупка Радиодеталей Украина
Рет қаралды 126 М.
как тебе будут продавать в 2025
16:22
Тихон Смирнов
Рет қаралды 395 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН