admin

Видеокурс По Avr-Микроконтроллерам Для Начинающих

2 309 сообщений в этой теме

admin    2 304

Сайт Паяльник открывает обучающий видеокурс по AVR-микроконтроллерам.

В этой теме "обратной связи" будем постепенно добавлять новые видеоролики с нашего канала. Здесь можно задавать вопросы, давать рекомендации, критиковать, оставлять отзывы и пожелания, а также запросы на тему будущих видеоуроков.

Ведет видеокурс наш форумчанин kobzar.

Профиль пользователя на сайте cxem.net. Там же финансовые реквизиты для тех, кто пожелает финансово отблагодарить автора данного видеокурса

Подписка на YouTube канал

Краткий обзор сред разработки для различных микроконтроллеров на сайте: http://cxem.net/software/soft_mcu.php

Внимание начинающим! Перед тем, как задавать вопросы не по теме видеоуроков, прочитать:

Статьи по МК для начинающих

Книга по программированию микроконтроллеров AVR

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

Кракозябры вместо русских букв

Ребята - спешу сообщить что найден метод борьбы с кракозябрами вместо русских символов, при работе с ЖК. Дело в том, что у некоторых из вас, проект создается в кодировке UTF-8, а наша библиотека работает только с ср1251

Фикс:

1.Открываем проект

2. File - Advanced Save Options

3. Вместо кодировки UTF-8 выбираем Cyrillic(Windows) - cp1251

Сохраняем, сохраняем проект - компилируем!

Добавлено 12.01.16 :

Изменённые версии библиотеки lcd_5110 :

От COKPOWEHEU - Ссылка на пост , Ссылка на github

 

Изменено пользователем Alex

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 304

Первый видеоурок

Второй видеоурок

Третий видеоурок

Изменено пользователем admin
Добавлен видеоролик

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 304

Четвертый видеоурок

Пятый видеоурок

Шестой видеоурок

Файлы к 6-му видеоуроку: LCD_5110.zip

Практика к шестому видеоуроку

Изменено пользователем admin
Добавлен видеоурок

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 304

Седьмой видеоурок:

Практика к 7-му уроку:

Восьмой видеоурок:

Изменено пользователем admin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
capicator    4

Доброго времени суток!

Вы при выборе IDE вы ориентировались в основном на удобство и понятливость в освоение.

Желательно бы еще указать сравнительные данные компилятора студии 6 по размеру выходного файла с остальными.

Ведь это самый важный параметр и ради которого некоторые пренебрегают всякими неудобствами.

Если в студии 6 оптимальность и размер кода занимает второе, третье место то это самый лучший вариант.

Ранее таким продуктом был WinAvr который сейчас вроде как интегрирован в студию.

Читал где то что сегодня функционал в студии по отношению к WinAvr выше, а по компактности и размеру кода хуже чем в последнем WinAvr.Тем более у WinAvr вроде как намечается продолжение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MoZaKa    0

Курс рассчитан на новичков. Размер файла нас, пока, не интересует

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Загрузка...
capicator    4

Курс рассчитан на новичков. Размер файла нас, пока, не интересует

Ну тогда всем надо смотреть в сторону графических IDE и подбирать МК с большим объемом памяти и зачем учить С, там достаточно основ алгоритма.

Изменено пользователем capicator

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

Atmel Studio 6.2 была выбрана и рекомендована для начинающих по следующим критериям:

1. Уроки будут вестись в ней

2. Она бесплатна

3. В отличие от безнадежно устаревшего винавр - проще и понятней в освоении!

4. У нее лучший редактор КОДА! (что для начинающих архиважно)

Провел тест - скомпилил один и тот же код в 4 и 6 студии! В 6 размер оказался на 15 процентов меньше! Не вижу смысла пользоваться устаревшим ПО!

А где же продолжение. Ждемс. Спасибо.

Сегодня будует третий урок переснят - практика! и на неделе 4 с практикой !

Так что не переживайте !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
capicator    4

Atmel Studio 6.2 была выбрана и рекомендована для начинающих по следующим критериям:

1. Уроки будут вестись в ней

2. Она бесплатна

3. В отличие от безнадежно устаревшего винавр - проще и понятней в освоении!

4. У нее лучший редактор КОДА! (что для начинающих архиважно)

Провел тест - скомпилил один и тот же код в 4 и 6 студии! В 6 размер оказался на 15 процентов меньше! Не вижу смысла пользоваться устаревшим ПО!

По всем пунктам не вижу препятствий и для WinAvr, все относительно....

Пожалуйста, очень прошу сравните код Atmel Studio 6.2 с WinAvr (чтоб без сомнения ).

А то все ни как не решусь что же применять.

Изменено пользователем capicator

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

Выбирайте то что вам удобнее!

Разницы в написанни кода для вас не будет! Но я не собираюсь рассказывать новичкам как изачем править мейк файл, как подключать бибилиотеки, как компилировать и отлаживать проект в ВинАВР!

Я по моему очень подробно обьяснил - использовать ВинАвр нет никакого вобще смысла! Проект развивался, рос - и в каокой-то момент он превратился в avr-toolchain который используется в 4 студии! Сама же ветка ВИнАВР так и осталась без продолжения развития! Там плохой редактор! Нет автокомплита! Нет фолдинга И так далее! Зачем нам с ним мучаться?

Я бы понял если бы вы метались от ИАР к АтмелСутдио --- но между студией от самого производителя и ВиНавр - развите котого и поддержка закончились несколько лет назад.... даже и не знаю что вам сказать!

Если вас не устраивает 6 студия - назовите причины - и используйте 4 !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747

А то все ни как не решусь что же применять.

Если предъявляете жесткие требования к скорости и размеру - только ассемблер. И библиотеки самому писать.

Не вижу смысла в полемике - 4 или 6. ТС сказал 6 - читаем, учимся, задаем вопросы по существу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
croc19    22

Не спорьте попусту. Я понял, что в студии удобнее написание программы и ее отладка.

А если нравится компилятор от WinAvr, так он прикручивается к студии влегкую.

Напоминаю про 2 и 3 уроки. Хочется уже посмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
capicator    4

А то все ни как не решусь что же применять.

Если предъявляете жесткие требования к скорости и размеру - только ассемблер. И библиотеки самому писать.

Не вижу смысла в полемике - 4 или 6. ТС сказал 6 - читаем, учимся, задаем вопросы по существу.

А где вы тут полемику увидели.

Речь вообще то не о номерах версий, а о разных продуктах, это раз.

А два это что не внимательно читаем, а потом не по существу вопросы задаем.

Если всем так хороша 6, то почему бы это не увидеть воочию.

kobraz пожалуйста сделайте сравнение на простом файле мигания светодиода (blink).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

Я не понимаю что вы от меня просите! Какое сравнение вам нужно?

з/ы/ уроки у же у администрации ждем пока их обработают и выложат !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
capicator    4

Я не понимаю что вы от меня просите! Какое сравнение вам нужно?

з/ы/ уроки у же у администрации ждем пока их обработают и выложат !

Я очень прошу Вас сделать сравнение по размеру кода простой программы (мигание светодиодом)

скомпилированной в Atmel Studio 6.2 и в WinAvr.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

Код

//Atmega8
#define F_CPU 8000000 //в WinAVR без этой строки
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = 0xFF;
PORTB = 0x00;
   while(1)
   {
    PORTB = 0xFF;
 _delay_ms(1000);
 PORTB = 0x00;
 _delay_ms(1000);
   }
}

Студия

Program Memory Usage : 108 bytes 1,3 % Full

Data Memory Usage : 0 bytes 0,0 % Full

Winavr

Program: 106 bytes (1.3% Full)

(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)

(.data + .bss + .noinit)

Я надеюсь мне удалось удовлетворить ваше любопытство вместо вас?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
hardbar    97

У меня не компилит вот ошибка.

post-171225-0-00621200-1396288594_thumb.jpg

Также не могу изменить Тульчайн. Постоянyо возвращает на AVR 32-bit

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MadLor    69

hardbar, уберите русские буквы из имени проекта/пути к проекту. Заодно убрал бы еще и пробелы. Программа "импортная"... не сильно русский лексикон любит. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

Таки да! Избегайте русских букв в названиях файлов и путях

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MadLor    69

hardbar, а что собственно не устраивает? То, что в Debug->Options an Settings ->ToolChain по Default стоит Atmel AVR 32-bit?

- подходит? Изменено пользователем MadLor

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kobzar    130

а смысл нам от 32 для 8 битного камня? На самом деле можно не менять! В наших уроках разницу мы не заметим!

Данную опцию я задел исключительно для того что бы показать основные настройки программы!

:)

Переснял третий урок - сейчас он на обработке у администрации!

В конце урока домашнее задание - тем кто хочет действительно научиться - рекомендую к выполнению! Читайте гугл ищите примеры - ТВОРИТЕ!

Только самостоятельная работа позволит понять и запомнить материал :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
hardbar    97

Вот чисто для сравнения. Никаких нареканий на СИ. Просто кому интересно.

Программа мигания двумя светодиодами. Размер HEX файла 279 байт

#define F_CPU 9600000
#include <avr/io.h>
#include <util/delay.h>



void options_port()
{
DDRB = 0b00001100;
PORTB = 0X00;
}

int main(void)
{
options_port();
while(1)
{
PORTB=0b00001000;
_delay_ms(1000);
PORTB=0b00000100;
_delay_ms(1000);
}
}

Программа вывода чисел от 0 к 9 в сдвиговый регистер. Размер HEX файла 333 байта (не верите проверьте)(завтра покажу видео работы программы в железе)

.include "tn13def.inc"
.list

.def temp=r16
.def temp1=r17
.def tim=r18
.def timer=r19
.def pob=r20
.def sd=r21
.def aa=r22
.def bb=r23
;-----------------------------
.macro outi
ldi sd,@1
out @0,sd
.endm

.cseg
.org 0
rjmp reset

;----------------------------
reset:
cli
outi spl,low(ramend)
outi ddrb,0xff
outi portb,0x00
outi acsr,0x80
outi tccr0b,0x05
ldi timer,255
clr temp1
sei
;------------------------------
main:
clr temp1
Read:
OUTi DDRB, (1<<PB3) | (1<<PB4)




        ldi ZH,High(Array*2)  ;загрузка начального адреса массива
        ldi ZL,Low(Array*2)

        ldi Temp,0            ;прибавление внутр. адреса
        add ZL,Temp1
        adc ZH,Temp

        lpm                   ;загрузка из ПЗУ

         cpi temp1,10
breq main
inc temp1
;=====================================
LDI pob, 8

back1:
       SBRC R0, 0
       RJMP bitset
           ; Установить сегмент в 0 (горит)
           OUTi PORTB,(0<<PB3)|(0<<PB4)
           OUTi PORTB,(1<<PB3)|(0<<PB4)
       RJMP bitunset
       bitset:
           ; Установить сегмент в 1 (погашен)
           OUTi PORTB,(0<<PB3)|(1<<PB4)
           OUTi PORTB,(1<<PB3)|(1<<PB4)
       bitunset:
       LSR R0
       DEC pob
   cpi pob,0
   BRNE back1 
;============================================
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rcall wait
rjmp read 
;--------------------------------
wait: ;Все что снизу задержка на таймере.
ldi tim,0
out tcnt0,tim
wt1:
in tim,tcnt0
cp tim,timer
brlo wt1
ret
;-------------------------------------

Array:
.DB   0b00100001, 0b01111101 ; 0, 1
.DB   0b10101000, 0b00111000 ; 2, 3
.DB   0b01110100, 0b00110010 ; 4, 5
.DB   0b00100010, 0b01111001 ; 6, 7
.DB   0b00100000, 0b00110000 ; 8, 9

Программу то есть прошивка (на Asm) писал я.

ЗЫ: прошивка на СИ из видео урока.

Изменено пользователем hardbar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...

  • Похожие публикации

    • Автор: MolodoyElectrik
      Всем привет.
      Пишу скетч для ардуины, нужно чтоб 1 светодиод мигал постоянно, и 4 светодиода включались и выключались поочередно. Все должно происходить в одно время разумеется и Delay здесь не катит. Вот пример как должно быть только с delay:
       
      Сделал такой скетч:
      Тот который 1 светодиод мигает все хорошо, а вот с 4, которые должны подряд включаться какая то лажа) Где напортачил?
      Предыдущую тему не в том разделе создал, удалите пожалуйста. 
    • Автор: DrobyshevAlex
      Здравствуйте! Хочу сделать программную регулировку контрастности для дисплей 1602.
      МК у меня atmega8. В эмуляторе не видно результата по этому думаю как плату разводить.
      Я перечитал много тем но толком не нашел ответ. Мне нужно от 5 вольт с помощью ШИМ регулировать напряжение на дисплее от 0 до 5В.
      Для сглаживая я хотел использовать RC фильтр, но видимо в простом варианте это не подойдет судя по ответам на других форумах.
      Встречал предложения сделать подряд несколько фильтров, использовать транзистор, добавить ОУ, использовать инвертор напряжения на двух диодах и двух конденсаторах.
      У меня есть парочка LM358. Решил остановится на этом варианте.
      Если я выход фильтра подключу на положительный вход ОУ а отрицательный соединю с выходом ОУ - я избавлюсь от неизвестности сопротивления нагрузки.
      МК работает на частоте 8MHz ШИМ 31250Hz. Нашел формулу расчета цепочки. R = 1/(2 * 3.14 * 31250Hz * 1nF) = 5k.
      Кто нибудь делал такую регулировку? Этого достаточно? Или можно выкинуть ОУ? Или лучше сделать два фильтра подряд? Тогда как расчитывать номиналы?
       
    • Автор: perec200
      Здравствуйте! По нажатию на кнопку (1) срабатывает прерывание INTF (RB0) необходимо вывести надпись и так она должна отображаться до тех пор, пока я не нажму на (2) кнопку и сработает прерывание RB7 которое напечатает другую надпись. 
      Решено было использовать задержки, но в тот момент пока вызвана задержка, не срабатывает другое прерывание.
      Как мне вывести надпись на экран и чтобы она не пропадала, до тех пор пока не будет вызвано другое прерывание?
      void interrupt isr(){ if(INTF){ INTF = 0; // reset interrupt flag/ Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Write_String("1."); Lcd_Set_Cursor(1,3); Lcd_Write_String("Hello"); __delay_ms(1000); } if(RBIF){ if(RB7){ activeItem++; Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Write_String("RB7"); __delay_ms(1000); } RBIF = 0; } }
    • Автор: Arseniy Popov
      Добрый день! Необходимо подобрать микроконтроллер, который будет получать команды по serial от esp8266 и димировать RGBW светодиод по следующему алгоритму: 
      https://docs.google.com/document/d/1FkPLiIgxleuDQn8pjihICQGRrMPXbwFzqCt6StQZjhU/edit?usp=sharing
      а также написать для него прошивку на си.
      Отвечать можете в телеграм arsenicum32 или сюда.
      Пишите цену / сроки, находитесь ли в МСК и/или в области.
  • Сообщения

    • Наконец-то выкроил время для проекта. Итак. Собрал схему, как описывал выше, только все спаял, как советовал bam-buk. В макетной плате без пайки похоже огромные потери. В общем схема работает отлично. Соленоид тарабанит ровно.  При испытаниях на «сухую» (без газа) из десяти раз, дало 2 осечки. Точнее срабатывание со второго удара соленоида. Это на 9В. При безостановочной работе 60 сек. батарея села на 0,7В и довольно быстро стала восстанавливаться. Обычно на соревнованиях во время боя 2-3 сек стреляешь, потом смена позиции. Батареи должно хватать. При 12В - 10 из 10 срабатываний, т.е. 100% работоспособности. Завтра будем проводить полевые испытания.
    • Настойчивость и упорство это хорошо, а вот не внимательность - плохо. Если собрались делать этот прибор, так почитайте форум с первой страницы. В моём первом сообщении есть архив, наверняка скачали и смотрели, там два варианта печаток,  в одной "присутствует деталь LP2951" это стабилизатор  6 вольт с индикатором разряда батареи. В том же архиве есть схемка этого стабилизатора.
    • Ну так я и учусь   Мне не надо готового решения, просто совета прошу в какую сторону думать.
    • Единственный минус Липина, это хреновый поджиг дуги на малых токах. Иной раз надо прихватить что-то мелкое и пока зажгёшь дугу, изматеришься  весь. В одном аппарате Липина прикрутил поджигалку. На секунды полторы подкидывает ток раза в два с плавным снижением онного до установленного. Но так-как в Липине ещё применял и блок автоматики с AVTешки, то эта автоматика отказывалась работать с поджигалкой ( не уходил аппарат в сон). Перешёл на AVT  Пы.Сы. Кстати, в AVTешке всего одним кондёром в широких пределах можно менять ВАХ. 
    • Спасибо. А я что то сразу не догадался. Нагородил там транзисторов.. 
    • Одно из моих творений чудо УМЗЧ, знаю радиаторы не по феншую, планирую переделывать, по нормальному, по мере поступления в руки других радиаторов, а может те распиляю... в корпусе Лайков 7.0 (выход 8101+8102), Пред - натали, темброблок - пассивный, защита АС - Бриг, БП траснс+ конденсаторы, вообщем классика.... а и индикация уровня вх. сигнала  надписей нету... Работает уже второй или третий год на даче в жару в основном, нагрев рука терпит, но хочу радики поставить правильно (или може их на сверлильном станке просверлить равномерно, что скажет народ?) А эт собственно процессссс.. сборки кратко
    • Я и собираюсь,уже поставил ТТ, может ещё и шунт как в гусях поставлю. Я с вами согласен,что Липин справляется прекрасно,но скучно) Липина если собрал правильно,то и ослик не нужен всё работает,хочется острых ощущений)