Всем привет! Появилась цель и интерес к программированию микроконтроллеров. Два года назад имел опыт на уровне чайника (для интреса программровал attiny2313, есть к ней рабочий программатор, умел мигать диодами, работать с ик-приемником, воспроизводить монофонические мелодии, всё это писал на Bascom-AVR). Потом забросил это дело. Сейчас, начав гуглить, наткнулся на неизмеримое кол-во информации. Вопрос: актуален ли на данный момент Basic, или лучше перейти на что-то другое?
Мое мнение - Bascom - язык для пионеров, изучавших в школе бейсик. Издевательство над МК. Больше нечего сказать. Чем ближе язык к машинным командам (самый близкий - ассемблер) - тем шире возможности использования ресурсов, но он сложнее и теснее привязка к конкретному типу МК. Язык СИ считается более универсальным и на современные МК (STM32 и пр) 90% примеров, документации и библиотек посвящено именно ему. Я, лично, предпочитаю ассемблер. На СИ когда-то писал для пробы и интереса, но не понравилось. Не лежит душа. Наверное после ассемблера. Многие, кто это прошел, меня понимают. Но в свете последних микроконтроллеров, наверное придется еще раз попробовать СИ. Выбирать вам.
Пожалуй тоже дам совет : СИ + ASM для микроконтроллеров, и Python для ПК. Почему так ?
Си - сейчас дефакто стандарт для программирования встраиваемых систем : при условии грамотного построения уровней абстракции, код написаный для одного микроконтроллера с полпинка заработает на другом. ASM - не зная хотябы азов ассемблера во встраиваемые системы лучше не лезть. Python - скорость разработки и кроссплатформенность решает.
_________________ RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код @hobbyelectronics
Моё личное мнение-если вы позиционируете себя как электронщик и хотите глубоко познать работу микропроцессора, то лучше начать с ассемблера, а уж потом перейти на СИ. Тем более что в СИ можно использовать куски программы, написанной на ассемблере. А для чистого программиста можно и сразу писать на языках высокого уровня, особо не вникая в приципы работы конкретного МК
Изучите для начала какой-нибудь один язык программирования и научитесь на нём работать. Остальные - дело наживное. Язык программирования всего-навсего инструмент для достижения какой-то цели. А вот насколько он удобен и приспособлен для решения - зависит от самой цели.
Нет "крутых" или "хороших" языков программирования, или, наоборот - "отстойных", есть программисты и есть быдлокодеры.
Всем спасибо за ответы. По Вашим советам остановлюсь всё же на СИ.
Rector писал(а):
Язык программирования всего-навсего инструмент для достижения какой-то цели. А вот насколько он удобен и приспособлен для решения - зависит от самой цели.
Цель - плавный пуск и изменение частоты вращения асинхронного двигателя. В процессе изучения возможностей МК появятся и другие цели.
Насоветуйте хороших книг, примеров и справочников по СИ.
"По Вашим советам остановлюсь всё же на СИ" Вам 3 человека посоветовали начать с асма Кошмар. А потом на форуме такой бред читаешь про регистры R0-R15 в которых МК чет там сам делает...
Очень содержательный ответ по теме от человека, у которого 1663 сообщения на форуме. Вам, наверно, умение программировать МК досталось генетическим путем?
Напомню подпись под веткой форума:
Цитата:
Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее
у азма есть свои плюсы и минусы(как и любого другого языка). существенный плюс(на мой взгляд) - что написал, то сам дурак(С) = т.е. железо делает ТОЛЬКО то, что вы сами написали. это очень важно когда учишься. минус - скорость реализации цели.
ну и не менее важно в этом языке пытаться делать сразу код, который можно потом будет заюзать с МИНИМАЛЬНЫМИ переделками и не важно на каком камне и не важно в какой логике. это конечно же идеал, но стремиться нуна...
Начал с книги, в которой ассемблер и С изучается параллельно.
Хм.. А если бы была книга, где и ассемблер и , к примеру , форт и лисп и пролог ? Хотя... обучаемость у всех разная , может быть человек сможет легко и свободно, без перегрузки изучить... Вот жители империи Цинь, в которой мы всё больше закупаем товары выучивают уже в начальной школе основных >=800 иероглифов, а из нас тут кто возьмётся их выучить? PS Книга такая существует!
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
1. Первый язык, который надо изучить перед тем, как начать программировать МК - английский. Без него будет жутко туго.
2.1 Читаем документацию/примеры на какой-нибудь простенький МК и параллельно курим ассемблер. Все что надо для этого предоставляют сами же производители. На английском, естесственно.
2.2 Параллельно изучаем С на "обычном" компьютере. Так легче проникнуться парадигмой языка и с отладкой проще.
3. Совмещаем знание С, ассемблера и микроархитектур. Все, цель достигнута.
***
Для работ с железом лучше всего С. Да, язык это инструмент, но дело как раз в том, что для обсуждаемой задачи лучше всего именно С. При этом в данных рамках под ПК тоже лучше всего писать на С. Это будет способствовать переносимости участков кода с МК на ПК и обратно. Я, например, частенько отлаживаю части кода на ПК, а потом переношу в проект для контроллера.
И естесственно, ассемблер целевой архитектуры знать надо обязательно, хотя бы иметь представление о нем.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения