Ассемблер хорош для критичных ко времени выполнения участков кода. Т.е. там где надо быстро, эффективней писать на ассемблере. Но у него есть недостаток. На разных платформах синтаксис различен.
Си универсальный, мощный язык. Если бы я начинал сегодня, я бы начал с изучения именно Си. Си это вобщем-то стандарт программирования де-факто на сегодняшний день. Зная Си вы легко сможете перейти на любую другую платформу мк. Куча кода, и на ресурсах и у производителей, пожалуйста, готовые куски можете использовать, а можете проанализировать реализацию и под себя поправить. А если захотите можете и большого брата попрограммировать, язык то один!
Огромное преимущество Си, это чудовищная глубина абстракции. Вы можете писать низкоуровневые примитивные функциии, которые рулят самым далеким винтиком вашей системы, с настойчивостью кувалды. А можете описывать интеллектуальные обьекты, которые по мановению мизинца, управляют сложнейшей системой.
По личному опыту скажу, асьмовые вставки делал всего несколько раз, и то уж очень специфические задачи были. Для общих задач Си выше крыши. Плюс вы можете изучать его постепенно, начиная с простого, и по мере усложнения задач будете наращивать "мясцо".
Тут получается, что Си это как бы средняя позиция, т.е. вы можете при необходимости и вниз сходить, по ассемблеру пошуровать, поизучать, благо там все просто, а можете и вверх пульнуть, в плюсы и прочие шаблоны углубиться, если вдруг понадобиться. Как бы база у вас такая универсальная получается.
З.Ы. Кстати, вот так выглядит функция вычисления RPM (об/мин) из периода у меня -
- Код: Выделить всё
//-------------RPM --------------
static inline uint16_t getRPM (uint32_t Period)
{
return (uint16_t)(36000000 / Period);
}
Больше думал чем писал
