Перейти к содержанию

Программирование Мк Требует Знаний Железа?


Рекомендуемые сообщения

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

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

Даже чтобы диодом помигать надо понимать как подключить диод чтобы ничего не спалить.

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Чтобы программировать мк - знаний железа не нужно. Даже самого железа не нужно - можно обойтись эмулятором. Только зачем программировать МК, если тот предназначен для управления "железом". Программирование ради программирования? :) А так да - даже светодиодом не помигать без элементарных знаний "железа".

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

хочу применить знания ассемблера в программировании МК,

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

Изменено пользователем musa56
Ссылка на комментарий
Поделиться на другие сайты

tcoder

А как без элементарной базы знаий железа можно в том же протеусе создать модель устройства под которое будет ТС писать код ?

Разве можно научиться играть в футбол без мяча - просто стоя на воротах ?

Как без знания железа проверить не работает код или неправильно подклюен тот же светодиод на лапку?

оОоооОО

коплю на мечту - Днепр К750

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

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

Имелось ввиду вот это железо:

но вот как радиолюбитель я ноль

Логика и закон Ома всё же разные вещи.

А как без элементарной базы знаий железа можно в том же протеусе создать модель устройства под которое будет ТС писать код ?

А очень просто. Можно попрограммировать на МК, вообще не связываясь с внешними портами.

Смысла в этом нет, но ведь автор хочет:

Очень хочу применить знания ассемблера в программировании МК

А из этого следует, что знания о том, что такое регистр, бит, и как это всё может быть связано - у него есть.

Разве можно научиться играть в футбол без мяча - просто стоя на воротах ?

Да, именно так я ознакомился с возможностями МК - вообще без всяких мячей. Мяч я приобрёл позже.

в том же протеусе создать модель устройства

Речь о программировании МК, а не об устройстве. Я говорил не о эмуляторе схем, а эмуляторе МК - который показывает, что внутри как выставленно на текущий момент. Ну и потом, в протеусе светодиоды вроде не горят? :) Или горят?

(от превышения тока)

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

Да, именно так я ознакомился с возможностями МК - вообще без всяких мячей. Мяч я приобрёл позже.

Так правильно!

Вы выучили матчасть и пользовались емулятором! То что физически вы камень приобрели уже много позже не освобождает вас от полученных знаний в процессе изучения!

Кроме того термин "программирование" - подразумевает под собой написание кода выполняющего определенные задачи и удовлетворяющего определенным условиям!

А как же тогда можно программировать если не знаешь етих задач или условий? а как их можно поставить если ты не знаешь что из себя представлет МК?

Ето как красить автомобиль руководствуясь технологией изготовления краски а не принцыпами покраски оного 0_о!

коплю на мечту - Днепр К750

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

не освобождает вас от полученных знаний в процессе изучения!

Я осваивал чисто архитектуру МК и его вычислительные возможности - это команды, управляющие регистры, флаги и прочее. Что с чем связано и т.п. Это дело радиоэлектроники не касается. Это равносильно изучению другого компьютера просто-напросто. Единственный спорный момент - это тактовый генератор. Но я думаю большинство "азмистов" должно с этим быстро разобраться.

как же тогда можно программировать если не знаешь етих задач или условий?

А если у меня задача и условие - сделать цикл с 256 итерациями и зависнуть? Бесполезно? Да, но зато даст возможность сориентироваться в среде программирования и архитектуре МК. А если у меня задача плавающую точку на азме посчитать и убедится, что это будет работать на мк? Тоже бесполезно, но опять же опыт)

если ты не знаешь что из себя представлет МК?

Как будто программисты знают, что из себя представляет процессор. Он устроен намного сложнее, чем видит программист. Он знает только то, что ему положено знать - порты, ячейки, память - на что всё это влияет и инструкции разумеется.

Если под знаниями МК подразумевается знание регистров и т.п. - это и в обычном ПК на уровне азма присутствует - ничего необычного и радиоэлектроники опять же не касается. А ведь автор именно про незнание радиоэлектроники говорит, а также то, что вникать походу не намерен.

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

Я бы и рад вникнуть, но почитав статьи с этого же сайта понял что для меня все очень ново и сложно. ИМХО люди в университет идут и после легко сами устройства конструируют. Может я неправильно себе представляю как МК связан с радиоэлектроникой? Потому и спросил. Ассемблер для меня вещь не новая, но по прежнему очень интересная. Но применять асм для Win32/64 это как то муветон :) Отсюда и возникло желание поработать в том числе и с практической составляющей процесса с МК.

Какие знания и уровень в радиоэлектронике мне необходимы для программирования МК (с практическим его последующем применением, а не только ради математики внутри него).

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

Необходимы основные знания об электрическом токе, напряжении, мощности, закон Ома, понимание работы диода, светодиода, транзистора, операционного усилителя, понимание работы основных радиоэлементов - резистор, конденсатор, индуктивность, умение читать принципиальные электронные схемы, читать даташиты на радиоэлементы.

Для начала этого хватит, а дальше уже от конкретной области применения МК зависит.

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

Допустим, Вы ТС, знаете ассемблер, архитектуру определенного камня. Любой алгоритм, который придумаете можете реализовать на ассемблере. Это хорошо. Но! допустим Вам дают задание автоматизировать какой-либо процесс. Например контроль температуры объекта, с управлением вентиляцией и нагревательным элементом. И что вы будете делать в таком случае? Без элементарных знаний по электронике это реализовать можно будет только с помощью форумов...

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

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

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

На самом деле не так всё сложно. Если начать практиковать - всё начнёт постепенно проясняться. С каждой ошибкой в электрической части и последующим её исправлением. Не работает что-то или сгорает - сразу в поисковик. Если долго не решается и предположений никаких - можно и на форуме спросить.

ИМХО люди в университет идут и после легко сами устройства конструируют.

Ряд тем этого форума доказывает, что далеко не все выпускники и предвыпускники с этим справляются. А порой и вообще ничего не знают :) Что я нахожу весьма забавным, несмотря на то, что в этом ничего удивительного.

Может я неправильно себе представляю как МК связан с радиоэлектроникой?

Его программная часть почти не связана с электроникой. Такой же комп, только слабый, маленький и без API :) Хотя в Сях библиотеки всякие имеются. Но обычно МК применяется как управляющий/обрабатывающий элемент некоего устройства, и вот чтобы правильно его сопрягать с некой электронной схемой, уже нужно кое-что понимать, а вразработке схем - тем более.

Отсюда и возникло желание поработать в том числе и с практической составляющей процесса с МК.

Получите массу удовольствия, когда что-то начнёт получаться и даже сможете сделать что-то полезное, когда освоитесь. Спектр применения просто чудовищный :)

Какие знания и уровень в радиоэлектронике мне необходимы для программирования МК (с практическим его последующем применением, а не только ради математики внутри него).

Тут всё просто, чем сложнее устройство - тем больше нужно знаний. Используйте стандартный путь, гуглите статьи и темы "как начать работать с МК": сначала помигать светодиодами, потом покрутить мотором, пощёлкать релюшками, потом плавное управление, обработка сигналов - например с COM порта компьютера и т.п. Интернет изобилует. По поводу чистой электроники - всё в посте 12. Можно и без МК с этим разбираться. Тоже увлекательное занятие.

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

Не зная железа, что можно почерпнуть в программировании? Загрузку регистра, пересылку, сравнение, "подергивание" битами, сложение, работу с индексами? Что все это даст нового программисту, знающему ассемблер, если он не представляет как всем этим распорядиться дальше?

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

Какие знания и уровень в радиоэлектронике мне необходимы

Почитайте для начала Хоровиц и Хилл том 1. И электроника не покажется вам такой страшной

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

Что все это даст нового программисту, знающему ассемблер, если он не представляет как всем этим распорядиться дальше?

Отличия архитектуры контроллера от архитектуры IBM-совместимых, различия в возможностях инструкций и организации кода в целом - уже новое. Программисту даст расширение кругозора, что никогда лишним не будет - может пригодится где нибудь. :) А так конечно - бессмыслица.

С другой стороны если зайти: лично мне ассемблер Z80 составил только развлечение, хотя и сослужил одно доброе дело, ассемблер IBM не дал сам по себе вообще ничего - нерационален как средство разработки. Почему я с ним работал? От нефиг делать в целом, и конкретно почему - потому что он наибыстрейший из всего доступного. Потом когда я взялся за МК - все эти знания и пригодились - спустя 10 лет.

Правда не скрою, что МК и программатор у меня уже были ещё до появления интереса к онным, а потому работать я начал с этим сразу в железе. Однако стоит отметить, что львинную долю стартового времени я потратил на разбор того, что внутри, и только освоившись более-менее там "полез наружу" :) А тут и по электронике знания начали подтягиваться не без помощи данного форума, в том числе и не без помощи ваших, Геннадий, советов :thank_you2:

Правда на данный момент всё приостановлено до лучших времён :big_boss:

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

Для того чтобы писать программы для МК , знания железа и само железо, не нужны абсолютно. По крайней мере в институте мы это прекрасно делали, вся отладка осуществлялась в симуляторе. Зачем знать что и как устроено "снаружи", если тебя максимум что интересует, это состояния входов/выходов?

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

...Зачем знать что и как устроено "снаружи", если тебя максимум что интересует, это состояния входов/выходов?

Чтобы "подергать" выводами в симуляторе - знать не обязательно. Чтобы получить реальный результат - необходимо.

Это как с автомобилем. Чтобы просто ехать, знать его устройство не надо. Но чтобы ездить без проблем - необходимо. :)

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

Не смешивайте понятия программиста и схемотехника. Упрощенно:

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

2. Для того чтобы передать данные по UART/USB/CAN/..., программисту должно быть абсолютно безразлично как это выполнено в железе, его основная забота - протокол общения.

3. Для того чтобы измерить температуру термопарой, надо знать лишь график зависимости температура/напряжение на входе МК.

Когда вы пишете ПО для ПК, вас реально заботит как бегают сигналы по материнской плате?

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

BerZerKku, это справедливо только если над проектом работают несколько человек, когда есть тот кто отвечает за схемотехнику и тот кто руководит этими людьми. А так, ну запрограммирует программист и что дальше?

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

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

Изменено пользователем BerZerKku
Ссылка на комментарий
Поделиться на другие сайты

Материнская плата - законченное устройство с выводом результата программирования на экран монитора. МК лишь "сердце" электронной схемы, зачастую не имеющей никакой визуализированной информации. Итог написания программы - получить рабочее устройство. Тренироваться "вслепую" написанием ldi, mov, in, out (и тд) и наблюдать в симуляторе, как они выполняются, для человека, обладающего знаниями ассемблера - пустая трата времени (достаточно почитать их описания). Лучше потратить это время на изучение электроники. Хоть какая-то польза. Эсли автор утверждает, что это "не та степь", т.е. ему это нах... не нужно, то какой смысл заниматься программированием МК? Пусть тогда PC программирует. Если он считает, что таким способом сможет научиться программировать МК и создавать рабочие прошивки, то это бред. Дальше мигания светодиодом дело не сдвинется. А про USAT/USB/CAN... вообще молчу (сколько знающих электронику людей поломали копья в этих вопросах).

По-моему тема - пустышка. Чтобы полноценно создавать схемы с МК, надо сначала "потренироваться на кошках" (Операция Ы), т.е. порисовать на мелкой логике.

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

Когда вы пишете ПО для ПК, вас реально заботит как бегают сигналы по материнской плате?

Тут я с Вами не согласен. Если Вы пишите программы для ПК под виндовс или любую другую ОС - знать электрическую часть не обязательно. Но при программировании МК, у Вас же нету ОС, которая будет общаться с железом. Программирование МК - можно сравнить с написанием программы на комп, в котором ничего нет. Начиная чуть ли не с биоса. И как тогда можно что - то делать, не зная железа? хотя бы элементарно, что к чему подключено, к каким портам.

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

Тренироваться "вслепую" написанием ldi, mov, in, out (и тд) и наблюдать в симуляторе, как они выполняются, для человека, обладающего знаниями ассемблера - пустая трата времени

Любой ассемблер с учётом реалий современности - пустая трата времени. Только и остался он в МК и возможно в драйверах для PC (и тут не факт). Простую программу для МК ещё можно на ассемблере писать, но когда это массивная программа с кучей всяких задач - ассемблер тут уже нерационален. Уж если взялся изучать - то ради интереса, и тут всё равно сначала стоит ознакомиться вслепую на симуляторе, хотя бы потому, что видно, что внутри происходит. Надо учитывать, что МК это всё же не PC, особенно PIC.

Когда вы пишете ПО для ПК, вас реально заботит как бегают сигналы по материнской плате?

Тут я с Вами не согласен. Если Вы пишите программы для ПК под виндовс или любую другую ОС - знать электрическую часть не обязательно.

А если взять ПК без операционной системы, то уже нужно будет знать электрическую часть чтоле? Да, там есть сервис биос, но его можно успешно проигнорировать. Для успешной работы без ОС достаточно знать к каким портам и областям памяти подключены устройства ПК ну и разумеется знать, что за что отвечает. Электричества это опять же никак не касается.

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

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...