WINAVR

Loading thread data ...

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 05 Oct 2005 22:17:48

+0400:

DT>>> Здрасти. Ручками можно и на ассемблере. ;) Приятность DT>>> именно в том, что ты просто пишешь, например:

DT>>> type Temperature is delta 0.01 range -100..100;

DO>> А во что скомпилируется работа с таким типом?

DT> В целое масштабированное (fixed point) и в целочисленную DT> арифметику.

Ага, и еще в рантайм проверки выхода за диапазон с достаточно громоздким (поскольку стандартным и универсальным) обработчиком исключений...

DO>> А если в одном выражении с другими такими же?

DT> В одном выражении разные (не производные - derived) типы так DT> просто сочетать нельзя. Или через явное преобразование типов, DT> или через перегрузку операторов.

То есть практически сразу же, на следующем же шаге все опять руками. Так не лучше ли это с самого начала сделать? Тем более, что подобная арифметика - ну не самая большая часть программ, мягко говоря.

DT> Хотя, кажется, можно умножать и делить на безразмерные числа. DT> Hо складывать вольты с сантиметрами тебе не дадут. :)

Эка невидаль... А вот складывать целые с дробными и числа разной размерности вполне себе можно и часто нужно.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexey V Bugrov
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
George Shepelev
Reply to
Nickita A Startcev

Hello, Igor Ulanov! You wrote in conference fido7.ru.embedded to George Shepelev on Thu, 06 Oct 2005 18:32:12

+0400:

GS>> От работы зависит. Если результат не лезет в память GS>> контроллера или не хватает быстродействия - придётся-таки GS>> разбираться с кодом...

IU> Если чуть не влезет, то придется. Если много, то и смысла IU> нет. И что?

Причем вовсе не обязательно, что на ассемблере. Часто бывает достаточно подчистить сишный код

IU> ЗЫ. IU> Стало интересно. А как ты думаешь почему люди переходят с ассемблера на Си. IU> Они что мазохисты? Код жирнее, программа выполняется медленее, IU> наглядности меньше, ошибки искать сложнее, допустить их IU> легче... Или просто ума не хватает усвоить ассемблер?

Все наоборот. Не переходят потому что ума не хватает освоить более высокоуровневый инструмент. Есть еще вариант, что ничего нового он не делает, просто немного модифицирует написанное и ему просто не нужен никакой другой инструмент. Правда тогда он не ругает его на чем свет стоит...

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Vladimir Vassilevsky

Hello, Yuriy K! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 06 Oct 2005 21:33:19

+0400:

IU>>> Стало интересно. А как ты думаешь почему люди переходят с IU>>> ассемблера на IU>>> Си. Они что мазохисты? Код жирнее, программа выполняется IU>>> медленее, наглядности меньше, ошибки искать сложнее, IU>>> допустить их легче... Или просто ума не хватает усвоить IU>>> ассемблер?

DO>> Все наоборот. Hе переходят потому что ума не хватает освоить DO>> более высокоуровневый инструмент. Есть еще вариант, что DO>> ничего нового он не делает, просто немного модифицирует DO>> написанное и ему просто не нужен никакой другой инструмент. DO>> Правда тогда он не ругает его на чем свет стоит...

YK> Теперь примени то же самое к переходу с С на С++. :-))))))

Я бы может и применил, но вот нет C++ для используемых мною процессоров... Хотя подходит и второй вариант - с точки зрения софта нет больших отличий в разных наших разработках, нет и нужды что-то радикально переделывать. Хотя конечно это если на С все делать, если бы это пришлось на асме писать, чем переделывать проще было бы заново каждый раз... Тем более, что в силу разных причин приходилось весьма похожие вещи на пяти разных архитектурах реализовывать. Это MC68HC11, PIC16, MC68HC908, ST7LITE, MCS51. Пробовал кстати и AVR но до реального проекта дело не дошло, нае?;?ал нас Атмел своим мега?"?ом (первое подцензурное матерное, второе, хоть и первое, но NDA).

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Andrey Solomatov

Несколькими - это на Си и на асме? или как? У вас была решенная задача на Си, после которой вы, оценив все его недостатки твердо решили писать только на асме?

Т.е. вы утверждаете, что Си для вас не обладает наглядностью? Может просто вы его не понимаете? ;-) Или, может, Си - это просто тоже самое, что и писать на Асм-е с использованием трюков? ;-)

Как же согласуются ваше утверждение, что надо "экономить мозги человека" и предложение решать задачи с помощью трюков, т.е. писать что-то "не обладающее наглядностью" -> заставлять человека разбираться во всех хитросплетениях команд?

Вообще, на любом языке можно такого наворотить, что потом любой скажет что это извращенный язык и т.п. У асм-а тут возможностей больше ;-)

Вообще, трюки имеют право на существование, при хорошем обосновании их применения и достаточных комментариях.

И обратные - "не лезьте в Си, только Асм даст вам полный контроль над ситуацией" :-) Осталось найти людей, пишущих в кодах или создающих свою архитектуру под конкретную задачу - такой костер разожжем....;-) У первых будет аргумент - что им баги в реализации конкретного асма не помеха. У вторых - что можно сделать такую систему команд и такие возможности CPU или МК, которые самым элегантным образом решат конкретную задачу.

очень может быть, что он не понимает как она происходит :-)

^^^^^^^^^^^^

Речь ведь была про понимание, а не про "заниматься"... Ведь бывает и критика без понимания - весьма распространенное явление;-) И можно понимать, но не заниматься ;-)

То, что у вас есть критика это понятно, но не отсюда я делал вывод про ваше "непонимание". Вот кое-что из вашего: "Ты не арифметику демонстрируй, ты попробуй с "указателями" поиграться. Одно только объявление переменных может вызвать длительное вычитывание доки, мигрень и расстройство пищеварения."

Это разве не жалобы на непонимание работы с указателями в Си? Работа с указателями действительно немного "мутная", на первый взгляд, но если разобраться, то все встает на свои места. Кстати никто не мешает обращаться по индексу например: pByte[i] вместо *pByte. Если человек представляет себе структуру данных, с которой собрался работать, то ее обработку он сможет организовать на любом языке который он понимает. Если я разобрался с методами адресации в одном ядре, то я смогу организовать обработку моей структуры данных на его асм-е, но для другого ядра я вынужден буду опять пройти через "длительное вычитывание доки, мигрень и расстройство пищеварения"

- а вот на Си через это проходят один раз для любого ядра.

Наверное, потому что из жизни и взято;-) Однажды начальство дало приказ "Асм! Ни строчки на Си!" и моя детская мечта писать на асм-е осуществилась. Однако я вновь оценил "комфортность" Си, когда начальство "ослабило гайки". И для меня и для начальства пока преимущества Си перевешивают достоинства чистого асм-а....

А именно? Есть показательный пример? Что имеется в виду-то?

В какой-то момент и асм не спасет.... панацеи не бывает :-)

Reply to
Basargin Konstantin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.