Си появился же не просто так. как и Java, Бейсик, ПХП. Качество языка - это какой объем проекта он позволяет поддерживать без головной боли. Си тут лучше, чем асм, а С++ лучше чем С. А когда только для своего удовольствия - то разве может быть лучше, чем то, что мне нравится? Как говорил один мой знакомый военный фотограф - лучше тот способ, которым пользуешься.
Вообще я считаю, что языки высокого уровня необходимы в промышленных разработках, когда время поджимает, конкуренты вот-вот выпустят модель покруче, а наработки нужно брать из старых моделей и оставлять задел для будущих.
Если же человек делает вещицу для себя, в единственном, так сказать, экземпляре, под конкретное железо и никуда не торопясь, из спортивного интереса решающий задачку нехватки десятка байт или пары мегагерц, то asm is the best chioce Плюс - даже в таком случае фрагменты, библиотеки и процедуры можно без труда использовать в других проектах, на других микроконтроллерах той же фирмы.
Только если задачка именно так и стоит - сыкономить любой ценой десяток байт. Для любителей - проблема ИМХО надуманная. А вот в промышленных условиях как раз имеет смысл экономия в десятки центов на чипе, может оправдать затраты на написание максимально компактной программы.
языки высокого уровня необходимы в промышленных разработках, когда время поджимает, конкуренты вот-вот выпустят модель покруче, а наработки нужно брать из старых моделей и оставлять задел для будущих.
Если же человек делает вещицу для себя, в единственном, так сказать, экземпляре, под конкретное железо и никуда не торопясь, из спортивного интереса решающий задачку нехватки десятка байт или пары мегагерц, то asm is the best chioce
ИМХО асм нужен в 3 случаях: 1. Асмовые вставки для оптимизации скорости работы; 2. Небольшие по коду и массовые устройства (для экономии объема памяти => более дешевые контроллеры => при огромных тиражах существенный экономический эффект от выбора более дешевого контроллера, покрывающий расходы на большее время разработки). 3. Чтобы научиться асму и потом спокойно применять его в случаях 1 и 2 (сюда же относим и спортивный интерес).
Есть такой чел... Макконелл... Он в своей книжке "Совершенный код" написал, что за всю жизнь ему пришлось жестко оптимизировать всего 1 прогу. Он писал быстрый декодер для DES по-моему, но не суть. Суть вот в чем... (Цифры не точные, поскольку читал давно)
Он писал на Java сначала.... Прога работала около 30 минут. Он нашел узкие места, оптимизирал их на Java и она стала работать 10 минут. Развернул циклы и она стала работать 5 минут. Но его это не устраивало. Он переписал на Си. Прога работала 4 минуты. Опять поискал узкие места и оптимизировал, полностью развернул пару циклов и прога стала работать 1 минуту. Его это тоже не устраивало. Он переписал пару строк(из многих тысяч) в узких местах на асме и прога стала работать 15 секунд. Ему надо было уложиться в 30 секунд. Но прогу стало невозможно читать!
Так вот, о чем я. Если надо, чтобы прога работала быстро, то надо определиться, насколько быстро она должна работать и оптимизировать до того уровня, который нужен. А на асме тут народ, наверное, пишет, потому что там "оптимизация по умолчанию". Я считаю, что умнее компилятора большой кусок кода никто не напишет из здесь присутствующих, а вот времени на это затратит до фига. В соответствии с принципом Парето - 80% времени программа выполняет 20% строк. Реально же зависимоть несколько иная - 90% времени программа выполняет <1% кода. Лучшее решение в сложных проектах - писать на Си 99% кода и 1% на асме, чем писать все на асме, чтобы никто не понял (и не помог, если потребуется)
Каким боком сюда вписывается Бэйсик? Это как Джава в примере выше. Программы на нем более понятны, поскольку они более формализованы. Это не асемблер, где можно "битик туда-сюда-в_то_место-забыли-а_теперь_вот_тут а параллельно еще 30 таких же цепочек"... И не Си, где можно написать одно и то же 50 способами... Это четкий язык без синтаксического сахара и без четкого контроля за всем, что происходит внутри устройства, на котором исполняется код. Именно поэтому он лучше для начинающих.
Так же как и для любого PIC. Вот конкретно шаг за шагом первый проект - попробуйте по аналогии - http://mcc18.narod.ru
Си понимают многие компиляторы, так что использовать можем для любого МК, в т.ч. и РС. А ссылка крайне неудачная. PIC18ххх много сложнее, а компилятор С18 заточен именно под это семейство. Каждый компилятор имеет свои особенности. С18 достаточно сложен и не имеет русского хелпа. Для начинающего это не лучший выбор.