обсуждение вырезано из совершенно другой ветки и оставлено в назидание потомкам
Вообще твой случай - замечательная иллюстрация к тому, что надо юзать языки высокого уровня позволяющие качественно структурировать программу (Си++, Джава) и т.п. А нехватка таймеров и прерываний в них - иллюстрация к необходимости RTOS как минимум в виде очереди задач с диспетчером
Ну что тут скажешь... всё верно конечно... В своё оправдание могу только промямлить: ну это же просто хобби, любительская конструкция... Да конечно, я всё понимаю и про языки (и не только понимаю, но и вижу их необходимость!) и про проф. подход к делу... авр123 постоянно об этом говорит и правильно! Постараюсь исправиться, вот тока в моём мозгу выстроится идея - сразу и начну новую жизнь а то что много времени на асм потратил, думаю "нет худа без добра"...
Vovan писал(а):Постараюсь исправиться, вот тока в моём мозгу выстроится идея - сразу и начну новую жизнь а то что много времени на асм потратил, думаю "нет худа без добра"...
А я всегда считал что челу пишущему на ассемблере - респект и уважуха! И что на ассемблере можно написать лучше и компактнее.
Vovan писал(а):а то что много времени на асм потратил, думаю "нет худа без добра"...
ИМХО только польза, я ж не говорю что АСМ вреден, наоборот он необходим даже для профи. Я то про любителей всегда толкую - им ИМХО проще и БЫСТРЕЙ свои идеи осуществить на Си.
Добавлено спустя 2 минуты 15 секунд:
yak-40 писал(а):на ассемблере можно написать лучше и компактнее.
Конечно можно когда понимаешь процессор так же как группа разработчиков IAR или лучше.
Только кому нужно это лучше то ? Лучшее - враг хорошего. Я думаю любителю достаточно сделать для себя хорошую вещицу, лучшая ему врядли требуется.
Добавлено спустя 3 минуты 23 секунды:
yak-40 писал(а):челу пишущему на ассемблере - респект и уважуха!
Ага Вот чел отпахал 10 лет на АСМ-е теперь на триклятый Си ПЕРЕПОЛЗАЕТ
Вот это список! Я в шоке, Vovan`у памятник при жизни! *10Е6 Асм хорош для одной-двух скоростных задач, а дальше что? Дальше вы начнете распределять память, унифицировать куски кода, делать какието последовательности для повышения наглядности программы и так далее.... Если задуматся, то тоже самое делает и компилятор языка высокого уровня, ну так лучше ему и оставить эту задачу (пускай он ее решит по-своему, заняв немного больше места) а себя занять совершенствованием интеллекта робота. Я до определенного времени тоже не понимал зачем Си - просто мне было интеренсо написать максимально оптимальный и быстрый код (и радоватся скока много места осталось свободного ). Зато владея асмом и Си можно сделать все!! ПС: вот бы еще научится отлаживать асмовые функции под си (в микроконтроллерах для начинающих вопрос)
=DeaD= писал(а):Вообще твой случай - замечательная иллюстрация к тому, что надо юзать языки высокого уровня ...
тьфу...
executer писал(а)::shock: Если задуматся, то тоже самое делает и компилятор языка высокого уровня, ну так лучше ему и оставить эту задачу (пускай он ее решит по-своему, заняв немного больше места) а себя занять совершенствованием интеллекта робота.
угу.. только при записи 0-й в два переменных типа char иль как там на сях под мк правильней, если эти переменные лягут в младшие 16 регистров, то компилятор сделает вот так: ldi tmp, 0 mov r1, tmp ldi tmp, 0 mov r2, tmp вместо... ldi tmp, 0 mov r1, tmp mov r2, tmp
Duhas писал(а):угу.. только при записи 0-й в два переменных типа char иль как там на сях под мк правильней, если эти переменные лягут в младшие 16 регистров, то компилятор сделает вот так:
На помойку такой компилятор. Нормальный компилятор C, как и более-менее опытный программист на ассемблере, сделает несколько eor Rx, Rx. А если ненулевое значение, LDI будет только один раз. Duhas, может сначала разобраться в вопросе, а потом уже рассуждать на тему C vs Assembler? Навязчивая идея какая-то ...
давайте поставим задачу.. простую довольно без сложных вычислений...
Давайте наоборот. Поставим задачу посложнее, так чтобы кода побольше, со сложными вычислениями. А потом замеряем время рассчитанное по формуле: время на реализацию программы + суммарное сэкономленное процессорное время за максимальное из времен написания
А потом вспомним, что заплати мы на 3 доллара больше мы могли бы писать на Си и не мучать ни себя, ни тех кто потом будет сопровождать написанный "код".
Блин, ну вы сравниваете что лучше тапки или шорты? Можно обойтись чемто одним. но и то и то нужно! Ктонибудь тут хоть раз забил память меге какойнибудь своим Сишным кодом?? Маленькую прогу можно на асм наваять. Большую, структурированую - лучше на Си - есть шанс что ее еще ктото поймет. Другое дело зачем Бейсик, но глупо отрицать его полезность если он когото устраивает
ПС Вчера читал про ВиндовсАсм - под MASM компилятор, так там код асмовский, но поддержубтся макрокомманды для организации ветвления, циклов.. вобщем позволяет структуру Си использовать, но писать на асм. Может и для АВР каданить сделают такой компиллятор (может уже?)
деваются.. еще как... си на то и язык высокого уровня.. в сях мы работает с готовыми типами данных.. по идее можем канешна и свои мастрячить но чаще нет.. я например дробную часть коэффициентов себе сделал через 256-е части от целого и на стандартные 1000-ные...
ПС эээм, ну как бы никто свои макросы сделать не мешает...
я лично не говорю ж всем, жопа ваше си идите на асм... меня парит что народ отрицает возможность написания любых программ на асм...