Использование Arduino для изучения встроенного программирования на C
Я изучаю компьютерные системы и планировал купить Arduino, чтобы изучить встроенное программирование на языке C. После исследования я обнаружил упоминание о том, что Arduino может быть не лучшим выбором для новичка, который хочет научиться программировать встроенные системы с использованием C.
Я не уверен, правда ли это, можно ли запрограммировать Arduino на C без использования C++ и других включенных библиотек классов? Я бы предпочел научиться программировать на довольно низком уровне и не полагаться на библиотеки, скрывающие детали базового оборудования. Можно ли использовать Arduino в качестве общей платформы разработки AVR/микроконтроллеров для изучения встроенного программирования на языке C?
@, 👍1
1 ответ
[Не уверен, кто слушает, так как этот вопрос был задан 4-летней давности кем-то, у кого, похоже, больше нет здесь аккаунта, но... ]
... можно ли запрограммировать Arduino на C? без использования C++ и других включенных библиотек классов?
Вы абсолютно можете использовать C или C++, а также использовать библиотеки классов или писать свои собственные функции для одной или обеих вычислительных задач и управления внешним оборудованием.
Может ли Arduino можно использовать в качестве общей разработки AVR/микроконтроллера. платформу для изучения встроенного программирования на C?
Да, по причинам, указанным выше, и многим другим. Встроенные системы отличаются от других вычислительных систем наличием сроков, которые необходимо соблюдать. Это могут быть мягкие сроки (старайтесь свести видимые задержки к минимуму, чтобы не раздражать пользователя/оператора) или жесткие сроки (если вы их пропустите, что-то может потерпеть неудачу или кто-то может умереть). Они бывают разных масштабов: моим домашним термостатом может управлять Attiny «с одним штифтом, привязанным за спиной». :) Другие системы могут содержать множество крупномасштабных чипов или их сочетание, связанных между собой внутренней сетью. Промежуточным примером этого является контроллер автомобильного двигателя. Он управляет сигналами, развлекательной системой, тормозами с АБС, системой контроля тяги и многим другим, одновременно открывая и закрывая клапаны форсунок и зажигая свечи зажигания с точной синхронизацией, со скоростью до 125 раз в секунду. И это для вполне обычного семейного автомобиля с «дорожным» двигателем.
Atmega328p (MCU Uno) достаточно сложно спроектирован, чтобы выдерживать случайное неправильное использование, разгон или подачу напряжения ниже указанного в спецификации, имеет несколько способов обновления/замены своей программы, его легко собрать вручную. изготовленная на заказ плата микроконтроллера, и после всех этих злоупотреблений, достаточно дешева, чтобы ее можно было заменить, если вам удастся ее повредить.
Документация, как и онлайн-сообщества, подобные этому, легко доступна, чтобы помочь с вопросами новичков, необычными вопросами и эзотерическими применениями, о которых, возможно, пробовали или знают лишь немногие люди.
Итак, доктор: да, я бы назвал это идеальной платформой для всего, о чем вы спрашивали.
- устаревшее преобразование из строковой константы в 'char*'
- Как запрограммировать ардуино на чистом C/C++?
- Количество элементов в массиве char
- Регистры ввода-вывода SAM3X8E (Arduino Due)
- как быстро loop() работает в Arduino
- Arduino: как получить тип платы в коде
- Как вызвать функции C из скетча ардуино?
- Как преобразовать полезную нагрузку byte* в строку