Есть желание научиться создавать устройства на МК.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Пт янв 21, 2011 07:48:23

Сообщение Sam85 »

PORTB=0x00; что значит это выражение ? (что порту В присваивается адрес 0 ?)
DDRB=0x38 и вот это ? (адреса регистров?)
задержка delay_us микросекунды
_ms милисекунды

вопрос бывают ли просто секунды ? или их надо выставлять в миллисекундах ?

скачал книгу самоучитель Белова, примере написано

if (PIND.0==1) \\ проверка порта
{PORTB.0=1} \\ (тушим светодиод)
Вопрос: почему если нулевому регистру порта В присваивается логическая единица, (т.е. есть напряжение) то светодиод тухнет ?

В схемах кнопках на порт подключается либо через внешнее сопротивление либо программно включается внутреннее
Вопросы:
1 навернется ли порт если использовать его без внешнего сопротивления и не включать внутреннее (или только регистр)
2 может ли потом этот порт (регистр) использоваться для каких либо целей ? (для ввода или вывода)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

PORTB=0x00; - установить все ноги порта в "0"
DDRB=0x38 - настройка порта, где бит = "1" ножка порта на выход, , где бит = "0" ножка порта на вход
вопрос бывают ли просто секунды ? или их надо выставлять в миллисекундах ? - да в миллисекундах delay_ms(1000) = 1 сек.
почему если нулевому регистру порта В присваивается логическая единица, (т.е. есть напряжение) то светодиод тухнет ? если "+" светодиода подключен к "+" питания
1 навернется ли порт если использовать его без внешнего сопротивления и не включать внутреннее (или только регистр)
нет, только нажатие кнопки без подтяжки определить невозможно
2 может ли потом этот порт (регистр) использоваться для каких либо целей ? (для ввода или вывода)
да можно использовать, например и для индикатора и для кнопок
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Пт янв 21, 2011 07:48:23

Сообщение Sam85 »

0x38 где 0- значение бита (значение 0 или 1), а 38 адрес ?

если "+" светодиода подключен к "+" питания
то есть у микросхемки логические уровни логические уровни определяются не по отсутствию или наличию напряжения, а по смене знака +/- ?
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

:)) :)) :)) Давно так не веселился.
Sam85, это форма записи числа в шестнадцатеричной системе счисления.
0x это префикс обозначающий шестнадцатеричное число, а 38 это цифры шестнадцатеричного числа.
Учите теорию.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

0x38 = 00111000 в бинарном виде (можно перевести обычным виндовс калькулятором), DDRB=0x38; означает что ножки порта B (PORTB.5, PORTB.4, PORTB.3) будут работать как выходы, остальные как входы.
если "+" светодиода подключен к "+" питания, а "-" светодиода к ножке порта, тогда когда на ножке порта будет "0" светодиод светится, когда на ножке порта будет "1" светодиод не светится
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

Куда же вы все суетесь в такой нетривиальный раздел программирования с нулевыми знаниями языка? Какие к черту микроконтроллеры, если даже запись целочисленного литерала в шестнадцатеричной форме вызывает сложность. Не приближайтесь к микроконтроллерам даже на пушечный выстрел пока не освоите Си. Читайте по нему книжки и лепите Hello World на компьютере, потом пробуйте всякие сортировки и другие простые алгоритмы, которые преподают первокурсникам в институте. Иначе я боюсь даже представить что за код вы получите на выходе и что какой кавардак при этом будет твориться у вас в голове.
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Не приближайтесь к микроконтроллерам даже на пушечный выстрел пока не освоите Си.
Плюсую.

На самом деле, нет такого понятия, как "изучить С", "изучить Бейсик", "изучить %languagename%". Точнее, изучить именно синтаксис языка чаще всего можно за вечер, но это совершенно не тождественно понятию "научиться программировать".

Научиться программировать прежде всего значит освоить методику декомпозиции задачи на простые действия (в пределе - на операторы языка) в рамках определенной парадигмы. Если этот навык есть, то писать можно на любом языке, поддерживающем выбранную парадигму. Человек, освоивший, например, процедурное программирование, сможет писать на C, Pascal, JS, Lua, Basic, Ada и вообще на любом процедурном языке с минимальным переучиванием, по факту - просто прочитав правила синтаксиса.

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

Кстати, пописать на ассемблере полезно, это дает почувствовать, как работает железо. Но это уже после того, как научитесь программировать...

Еще одно обязательное условие - знание английского. Без него начинать что-то смысла нет.
Сегодня изучение АВР - пустая трата времени... если только не нужно что-то тупо повторить...
Ага. Изучать ньютоновскую физику - пустая трата времени, уже давно изобрели теорию относительности! :)))

AVR - удобная, я бы сказал, модельная, архитектура. Начинать с нее удобнее всего. Если ее освоить, переход на другие архитектуры - дело пары дней. Тут так же, как и с языком - если изначально понять, что к чему, потом гораздо проще. Зная AVR я освоил STM/MSP дня за два... Ну, собственно, дня два я разбирался с даташитом. Потом спокойно начал писать прикладное приложение (причем без всяких ущербных SPL).
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

YS писал(а):AVR - удобная, я бы сказал, модельная, архитектура. Начинать с нее удобнее всего.
Тогда уж надо с классики начинать - с 51 архитектуры. Только зачем тратить время - STM32 и STM8 такие же как и все остальные микроконтроллеры, наличие простого дебагера, дешевых отладочных плат и рабочих примеров от производителя значительно упрощает изучение.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Тогда уж надо с классики начинать - с 51 архитектуры.
Можно и с нее. Но AVR в наши дни все же доступнее.
такие же как и все остальные микроконтроллеры, наличие простого дебагера, дешевых отладочных плат и рабочих примеров от производителя значительно упрощает изучение.
Примеры в большинстве своем используют SPL. Мало того, что это кривой костыль, созданный из маркетинговых соображений, так оно еще и никак не способствует пониманию строения и особенностей контроллера, поскольку являет собой HAL. Новичку оно прямо противопоказано (начинающему оно еще и привьет говностиль кодинга).

Я видел эти "рабочие примеры", когда осваивал STM32. Там даже мне поначалу было без полбутылки не разобраться. К этому прибавляется несколько долбанутая система документации и приколы, специфичные для ARM-ядра (если говорим о STM32). Со временем ко всему этому привыкаешь и даже находишь логику, но начинающему будет очень тяжко.

Так что начинать, как и прежде, надо с AVR или, действительно, с MCS51. По ним есть огромное количество литературы, сами МК очень просты, документация не рябит в глазах кучей битов в куче регистров - блок-схему младших AVR можно нарисовать по памяти, то, что надо; документация по AVR не размазана по куче файлов и аппноутов, а на 90% собрана в одном даташите на МК, и прочие удобства.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 80
Зарегистрирован: Сб янв 18, 2014 23:32:26
Откуда: Мурманск

Сообщение Olegsevmor »

А чем плоха обучалка с радиокота: http://radiokot.ru/start/mcu_fpga/avr/ ?


Во всяком случае таких вопросов "PORTB=0x00; что значит это выражение?" не возникало бы.....

Я с неё и начинал :)
"Как много весёлых ребят и все делают велосипед....." Виктор Цой

"Бестолковые умрут первыми" Генрих Гиз
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

"не так страшен SPL как его малюют" (с)
начинают обычно все с простого мигания светодиода, например как это выглядит для STM32:
покупаем дискавери и заодно сразу получаем бонус, кроме отладочной платы на борту программатор/отладчик, который можно использовать для своих плат.
Копипастим пример мигания из SPL (он работает на всех микроконтроллерах линейки).
Все.
Потом можно разбираться что наделал SPL, изучая документацию (документ кстати один, тоже на всю линейку, второй документ только распайку ног смотреть).
Имхо книг вообще лучше не читать - вполне достаточно документации.
для AVR:
паяем программатор, боремся с проблемами программатора - непропаи, не та виндовс, нет LPT, сгорел ПК от неправильного включения и пр., достаточно много тем об этом на форуме, говорит о насущности проблемы.
Паяем отладочную плату, опять непропаи и пр.
Копипастим пример из книги, но он для меги8, а у нас мега48 - может не заработать (ноги совпадают, а документация то разная).
Идем на форум - пишем не работает, видим негативные высказывания личностного характера, прям как в этой теме, бросаем все на ... (это шутка)
Прошиваем для проверки, устанавливаем неправильно фузы (актуально для пятипроводковых программаторов).
Делаем высоковольтный программатор и восстанавливаем фузы.
Выбрасываем книги и изучаем документацию - наконец заработало.
Вроде стм проще и дешевле обойдется.
Встал на лапы
Аватара пользователя
Сообщения: 80
Зарегистрирован: Сб янв 18, 2014 23:32:26
Откуда: Мурманск

Сообщение Olegsevmor »

Зато avr послезней для рук и головы. Это по вашему сообщению очень хорошо прослеживается! :-)
"Как много весёлых ребят и все делают велосипед....." Виктор Цой

"Бестолковые умрут первыми" Генрих Гиз
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

Ну да тогда уж и паяльник самому сделать....

А вот что атмеловские фьюзы что их Cortex - убиться можно.

прошу прощения но тема начинает сваливаться в очередной флуд STM vs AVR.
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Наверное можно уже и закрыть, поскольку автор темы похоже "бросил все на ..."
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

YS писал(а): Примеры в большинстве своем используют SPL. Мало того, что это кривой костыль, созданный из маркетинговых соображений, так оно еще и никак не способствует пониманию строения и особенностей контроллера, поскольку являет собой HAL. Новичку оно прямо противопоказано (начинающему оно еще и привьет говностиль кодинга).
:)))
В референсе под STM32F0XX в приложении "А" есть примеры... без применения SPL...
На сайте под F0 есть snippets... Так что... было бы желание...
Я видел эти "рабочие примеры", когда осваивал STM32. Там даже мне поначалу было без полбутылки не разобраться. К этому прибавляется несколько долбанутая система документации и приколы, специфичные для ARM-ядра (если говорим о STM32). Со временем ко всему этому привыкаешь и даже находишь логику, но начинающему будет очень тяжко.
:)))
Нормальнвя там документация... У NXP намного хуже...
Сейчас уже только безнадёжно ленивый или тупой не осваивает STM32...
В общем... всё это отговорки и тривиальное запугивание начинающих...
"Я не даю готовых решений, я заставляю думать!"(С)
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

И как правило почему то ни кто не переходит с 8-битников Atmel на их же Cortex SAM3 например, а выбирают STM или реже NXP? не смотря на хваленую документацию "все в одном"
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

У Atmel уже есть SAM D10 Cortex-M0+ http://www.atmel.com/ru/ru/products/mic ... spx#samd10
вполне себе замена всяких мег и тинь - кажись забьют они скоро на AVR
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

почему то ни кто не переходит с 8-битников Atmel на их же Cortex SAM3 например, а выбирают STM или реже NXP?
Маркетинг. ST гораздо более агрессивна. Atmel в этом смысле вообще бревно.
В референсе под STM32F0XX в приложении "А" есть примеры... без применения SPL...
Я написал "в большинстве", а не "все". Да, нормальные примеры есть. Но их, во-первых, надо поискать, а, во-вторых, сама ST по маркетинговым причинам продвигает SPL. Идея простая - вот такой вот начинающий, начав с этого протеза для мозга, прирастет корнями к SPL и потом уже ни на какую другую архитектуру (где нет конкретно этой SPL) просто так не перейдет - profit!
Нормальнвя там документация...
После AVR, где все собрано в одном месте, лазание по куче файлов (DS + periph. reference + errata + core reference + appnotes) - ночной кошмар. Ну, эт поначалу. Потом привыкаешь, что где.
всё это отговорки и тривиальное запугивание начинающих...
Отговорки от чего? Лично я работал и с AVR, и с PIC, и c STM8, и c STM32, и с MSP430. На AVR и STM32 делал коммерческие проекты, остальное пробовал для духовного роста. :)))

Выводы - для большинства рядовых задач все так же хватает AVR и PIC. STM32 в большинстве случаев - дань моде. MSP430 мне нравятся как аскетичные камни для души, STM8 - вообще не_нужны.
прошу прощения но тема начинает сваливаться в очередной флуд STM vs AVR.
Лично я не говорю что что-то лучше или хуже. У каждого семества своя область применения. При этом для обучения лучше всего подходят AVR, MCS51, PIC или MSP430, но никак не ARM. ARM - следующая ступень. Так что начинающих я не запугиваю - пускай берут что-то из перечисленного, но лучше бы не ARM.
второй документ только распайку ног смотреть
Внезапно, не только. Там есть куча chip-specific параметров - тот самый "один документ" пестрит фразами "see device-specific datasheet for details". И об это, кстати, тоже можно больно споткнуться.
... паяем программатор, боремся с проблемами программатора - непропаи, не та виндовс, нет LPT, сгорел ПК от неправильного включения и пр., достаточно много тем об этом на форуме, говорит о насущности проблемы.
Паяем отладочную плату, опять непропаи и пр. ...
И получаем бесценный опыт. Я тоже через все это проходил, и потому теперь сходу решаю многие практические проблемы, потому что подобные им у меня уже возникали на этапе начального набивания шишек. Гладкого пути в эмбед (и инженерию вообще) нет и быть не может - опыт решает.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

Есть то есть, но вот примеров вменяемых нету.
Поставил себе 6-ю студию сначала офигел с того что для работы с GCC она натянула студию2010., ладно...
Создаю пустой проект чтоб тупо светиком помигать - как посмотрел из скольки файлов состоит проект прифигел еще сильнее...
Причем всунул туда свои библиотеки, короче мрак...
Ну ладно, запускаю компиляцию - 1,5 - 2 минуты "собирается решение", а если что то серьезное писать?

В общем до STM32 с его кучей апноутов и примеров, кучей бесплатных IDE на основе GCC и Eclipse проще освоить. ARM от атмел не то что можно советовать начинающему
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

YS писал(а): Я написал "в большинстве", а не "все". Да, нормальные примеры есть. Но их, во-первых, надо поискать,
Для F0 ничего искать не нужно... в референсе всё есть!!!
Выводы - для большинства рядовых задач все так же хватает AVR и PIC. STM32 в большинстве случаев - дань моде. MSP430 мне нравятся как аскетичные камни для души, STM8 - вообще не_нужны.
Всё как раз наоборот... Для простых и дешёвых приложений - типа STM8S003... для остального - STM32...
Остальной PIC/AVR огород/зоопарк - идёт лесом!!!
Зачем плодить сущности???
Так что начинающих я не запугиваю - пускай берут что-то из перечисленного, но лучше бы не ARM.
Зачем гробить время и деньги на позавчерашний хлам??? АРМ рулит!!! STM в частности...
"Я не даю готовых решений, я заставляю думать!"(С)
Ответить

Вернуться в «Разные вопросы по МК»