|
Переход с ASM на С, книги, советы |
|
|
|
May 22 2009, 03:39
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 5-01-09
Из: Красноярск
Пользователь №: 42 941

|
Уже год пишу на АСМе для AVR, для повышения квалификации, хочу освоить и С. какие могут быть рекомендации, если в данный момент уровень знаний о С никакой подскажите какие книги лучше читать, может есть какие нибудь экспресс методики по освоению языка.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 23)
|
May 22 2009, 05:43
|
Участник

Группа: Свой
Сообщений: 48
Регистрация: 27-09-06
Из: г. Москва
Пользователь №: 20 735

|
для начала Керниган и Ритчи. http://khpi-iip.mipk.kharkiv.edu/library/pgm/kr/а дальше уже сам, разбираясь в чужих кодах и примерах
|
|
|
|
|
May 22 2009, 06:11
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 5-01-09
Из: Красноярск
Пользователь №: 42 941

|
Спасибо, к сведению принял! в общем старанье и труд... ну и как завещал великий Ленин =)
а еще меня волнует очень-очень глупый вопрос - есть какая-нибудь разница м/у С, С+ и С++?
|
|
|
|
|
May 22 2009, 06:53
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 5-01-09
Из: Красноярск
Пользователь №: 42 941

|
душевное спокойствие востановлено )
|
|
|
|
|
May 22 2009, 07:08
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(sheld @ May 22 2009, 09:53)  душевное спокойствие востановлено ) Можно было и раньше, в http://electronix.ru/forum/index.php?showtopic=20372&hl=там есть ссылка на Название: Программирование на языке C для AVR и PIC микроконтроллеров Автор: Ю.А. Шпак Издательство: МК-Пресс Год: 2006 Страниц: 400 Формат: djvu Размер: 9.20 Мб
|
|
|
|
|
May 22 2009, 09:13
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(HardJoker @ May 22 2009, 11:26)  Хм-м... написание софта на ассемблере будет по-сложнее сишных упражнений. Написание "моргалки светодиодом" на ASM, впрочем как и на Си, не есть ни исскуство ни упражнение для ума. Поскольку, к сожалению, очень часто писание на АСМ останаливается на уровне "очень продвинутая моргалка светодиодом", то.... Я бы совершенно не гнул пальцы по поводу "сишных упражнений"  . Оборотная сторона ASM писания - на любом языке можно писать и пишут  , как на ASM, только это ЖОПА, хотя очень многие остановившиеся в развитии на ASM этого не понимают. Для понимания, ну как минимум, надо все-же надо начать занисматься "сишными упражнениями", да и C++ тоже.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 22 2009, 18:19
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(zltigo @ May 22 2009, 13:13)  Написание "моргалки светодиодом" на ASM, впрочем как и на Си, не есть ни исскуство ни упражнение для ума. Поскольку, к сожалению, очень часто писание на АСМ останаливается на уровне "очень продвинутая моргалка светодиодом", то.... Я бы совершенно не гнул пальцы по поводу "сишных упражнений"  . Оборотная сторона ASM писания - на любом языке можно писать и пишут  , как на ASM, только это ЖОПА, хотя очень многие остановившиеся в развитии на ASM этого не понимают. Для понимания, ну как минимум, надо все-же надо начать занисматься "сишными упражнениями", да и C++ тоже. При написании программ на ASM много времени уходит на сам ASM. Тем не менее. Подобный софт при правильном расположении комментариев - вполне читаем и сопровождаем. Тому пример - мнемокод PLC, на котором ваяет свою нетленку достаточно большое количество разнообразного по уровню интеллекта и опыту народа во всем мире. Могли бы и там сделать нечто, похожее на С. Однако ж по сей день никто ничего в этом направлении не делал и не собирается. Так что есть люди, считающие, что ASM - вовсе не ЖОПА, а несколько иной орган. С при правильном к нему отношении - язык самодокументируемый, требующий минимума комментариев. Не говоря уже о С++, позволяющему пользоваться отработанными чужими решениями, не вникая особо в их "внутренности". Модифицировать их под собственные нужды. Ну и т. д. Так, что здесь, ПМСМ, все определяется только поставленной задачей.
Сообщение отредактировал Прохожий - May 22 2009, 18:21
|
|
|
|
|
May 22 2009, 19:48
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Прохожий @ May 22 2009, 21:19)  Подобный софт при правильном расположении комментариев - вполне читаем и сопровождаем. До тех пор, пока обширные комментарии соответствут текущей реальности а не предыдущей. Особенно хорошо смотрятся "правильные" комментарии к ошибочному коду. Комментарии не есть панацея, для ASM особенно. Цитата Так что есть люди, считающие, что ASM - вовсе не ЖОПА, а несколько иной орган. Перечитайте внимательно написанное мной. Там нет этого слова по отношению к ASM.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 22 2009, 21:23
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(zltigo @ May 22 2009, 23:48)  Перечитайте внимательно написанное мной. Там нет этого слова по отношению к ASM. Я и имел в виду не сам ASM, как таковой, а текст на ЯВУ в стиле ASM. Прошу прощения за нечеткость изложения. Цитата(zltigo @ May 22 2009, 23:48)  До тех пор, пока обширные комментарии соответствут текущей реальности а не предыдущей. Особенно хорошо смотрятся "правильные" комментарии к ошибочному коду. Комментарии не есть панацея, для ASM особенно. Посмотрите тексты программ на IL или LD для PLC от SIEMENS, к примеру. Все достаточно хорошо структурировано. Система сама предлагает расположить комментарии в нужных местах. А то, о чем Вы говорите, пресекается системой контроля версий. Более того, там есть средства, позволяющие закрепить отработанные решения в виде различных функциональных блоков. На мой взгляд, проблема все-таки лежит не в ASM или С, а в неком уровне абстрагирования самой программы от внешней среды. По ряду причин программист не хочет отходить от "железа" и пишет "в стиле ASM". В некотрых случаях, типа PLC, это просто не нужно. Ассоциации здесь достаточно примитивны - датчик -> вход -> булева переменная. Т. е. аналог "ногодрыжества" в гипертрофированной форме. Более того, само железо уникально, технические решения не требуют повторения. В следующем проекте все будет по-другому. ЯВУ в этом случае просто вреден, ПМСМ, опять же. С другой стороны, все люди разные. Кто-то может абстрагироваться от внешней конкретики, а кто-то нет. Чисто физически... Просто не дано свыше. Точно так же, как кто-то не может опуститься до уровня отдельных битиков. На мой взгляд, тот или иной стиль определяется сочетанием кучи факторов, начиная от самой задачи и заканчивая чертами характера конкретного индивидуума.
|
|
|
|
|
May 23 2009, 04:06
|
deleted
   
Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024

|
Цитата(Прохожий @ May 23 2009, 00:23)  .. Посмотрите тексты программ на IL или LD для PLC от SIEMENS, к примеру.... Так сложилось, что жисть заставила в очередной раз открывать учебник, начал сегодня листать Н.П. Деменков "Языки программирования промышленных контроллеров". Нахожусь пока в смятении и недоумении, особенно глядя на LD  , у них что там, интерпретатор в ПЛК сидит? Возможно, нужно было начать свою ветку, но пока воздержусь. Уж простите, что не совсем по теме топика.
|
|
|
|
|
May 23 2009, 05:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(INT1 @ May 23 2009, 10:06)  у них что там, интерпретатор в ПЛК сидит? Таки да. Что ещё хуже - этот LD крепко сидит в мозгах тех кто делает и применяет такие PLC, никакими С-с_чем_угодно его оттудова не выбьешь - упираются, всяк на своём стоит...
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
May 23 2009, 08:14
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Прохожий @ May 23 2009, 00:23)  На мой взгляд, проблема все-таки лежит не в ASM или С, а в неком уровне абстрагирования самой программы от внешней среды. Это проблемы не языка, а развития технологии компиляции и оптимизации. А текст на ЯВУ в стиле АСМ не всегда вреден. Например: использование битовых полей вместо битовых масок порождает зависимость от правила выделения бит. Ессно, для структур имеющих дело с вводом/выводом, такое неприемлемо. Цитата(INT1 @ May 23 2009, 07:06)  у них что там, интерпретатор в ПЛК сидит? Есть ветка про nano-PLC на AVR, народ голову ломал, как же линковать функциональные блоки в финальную прошивку на целевом контроллере. http://electronix.ru/forum/index.php?showtopic=40070
|
|
|
|
|
May 23 2009, 10:23
|
deleted
   
Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024

|
Цитата(SSerge @ May 23 2009, 08:44)  Таки да. Что ещё хуже - этот LD крепко сидит в мозгах тех кто делает и применяет такие PLC, никакими С-с_чем_угодно его оттудова не выбьешь - упираются, всяк на своём стоит... Цитата(_Pasha @ May 23 2009, 11:14)  Есть ветка про nano-PLC на AVR, народ голову ломал, как же линковать функциональные блоки в финальную прошивку на целевом контроллере. http://electronix.ru/forum/index.php?showtopic=40070Мм_да; //  , похоже тоже придется психологический перелом испытывать (потому как исходники имеющегося оборудования на LD написаны), покруче чем переход с асм на Си будет  . Я так прикинул, что те задачи, к-рые решаются в имеющимся оборудовании с помощью ПЛК, можно решить обычным восьмибитником, и на проядка два дешевле, разве что HMI панели купить придется. ГЫ, любопытный фрагмент из вышеупомянутой книги, т.е. стандарт, это вовсе и не стандарт, а рекомендации.
Эскизы прикрепленных изображений
|
|
|
|
|
May 25 2009, 18:34
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(zltigo @ May 23 2009, 13:14)  Неприемлимо только не знать языка и инструмента. А именно незнание и того и другого, и является отличительной чертой пишуших на языках высокого уровня, как на ASM. После чего и обильно рассказывающих глупости об ограничении свободы самовыражения, глюках компиляторов, тормозах.... Это, ПМСМ, как раз и связано с неким периодом адптации в новой среде. Появляются новые возможности, новые типы данных, другая структура программы и данных. Естесственно, все сразу получиться не может. Отсюда и желание - назад, в пампасы. А свободы самовыражения на ЯВУ, естесственно, больше. Глюков компиляторов С пока не наблюдал. Оверхед есть, но даже для МСС18 им можно пренебречь в угоду возможности отойти от железа и мыслить в терминах задачи, как таковой. Впрочем, это мое частное мнение. Цитата(INT1 @ May 23 2009, 14:23)  Мм_да; //  , похоже тоже придется психологический перелом испытывать (потому как исходники имеющегося оборудования на LD написаны), покруче чем переход с асм на Си будет  . Я так прикинул, что те задачи, к-рые решаются в имеющимся оборудовании с помощью ПЛК, можно решить обычным восьмибитником, и на проядка два дешевле, разве что HMI панели купить придется. ГЫ, любопытный фрагмент из вышеупомянутой книги, т.е. стандарт, это вовсе и не стандарт, а рекомендации. Здесь несколько иной подход. Лестничные схемы (LD) предназначены для работы исключительно с булевыми переменными. На это же и ориентирована и псевдоархитектура PLC. Она достаточно примитивна, но в этом ее основной +. С обычным восьмибитником будет сложновато, особенно, когда дело дойдет до плавающей арифметики или синусов с косинусами. Здесь надо просто осознать, что вся автоматика сводится к манипуляции с битиками. На С в этом случае получались бы маловразумительные длинные условия и было бы некрасиво. Кроме этого, такой способ программирования на самом деле облегчает отладку длинных логических выражений.
|
|
|
|
|
May 25 2009, 18:53
|
deleted
   
Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024

|
Ну не знаю  , пока что у меня к этим ПЛК какая то внутренняя неприязнь, буду прообрвать бороться  . Пока что вижу: контроллер от Omron, пара блоков расширения, и бомбить 32х битным RISC ядром по пятку релюх и столькИм же датчикам, рука бы не поднЯлась, ктому же, "плавучкой" там и не пахнет. Есть там еще ModBus, но то так, чтобы оператор с панели частотнику частоту зАдал, я бы нашим операторам лучше всего пару кнопок вывел Пуск/Стоп, а то и вообще- одну  .
|
|
|
|
|
May 25 2009, 19:06
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(INT1 @ May 25 2009, 22:53)  Ну не знаю  , пока что у меня к этим ПЛК какая то внутренняя неприязнь, буду прообрвать бороться  . Пока что вижу: контроллер от Omron, пара блоков расширения, и бомбить 32х битным RISC ядром по пятку релюх и столькИм же датчикам, рука бы не поднЯлась, ктому же, "плавучкой" там и не пахнет. Есть там еще ModBus, но то так, чтобы оператор с панели частотнику частоту зАдал, я бы нашим операторам лучше всего пару кнопок вывел Пуск/Стоп, а то и вообще- одну  . Я бы для осознания процесса порекомендовал бы сначала поиграться с так называемымы "реле" в виде ZEN от того же OMRONа или LOGO от SIEMENS. Для ZENов существует симулятор. Так что можно и виртуально все это сделать... А что касается 32-битного ядра, то в данном случае это уже не важно... Есть варианты PLC и на AVR.
|
|
|
|
|
May 26 2009, 04:43
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477

|
Я бы посоветовал поискать , в дополнение к K&R Герберт Шилдт (Herbert Schildt) The Complete Reference (Полный справочник по С). Оцифровал Воробьёв П.А. http://lord-n.narod.ru/download/books/wall..._po_C/about.htm
Сообщение отредактировал Bronislav - May 26 2009, 05:17
|
|
|
|
|
May 26 2009, 07:43
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Прохожий @ May 25 2009, 21:34)  С обычным восьмибитником будет сложновато, особенно, когда дело дойдет до плавающей арифметики или синусов с косинусами. Я думаю, на уровне функциональных блоков можно поставить водораздел между 8 битниками и 32-х, и пускай 8-битники живут в PLC. Кстати, 43мкс на ATMEGA88/20МГц - бенчевое время для вычисления плавучего кубического сплайна. Тоже не много с учетом 100мкс типичного времени реакции. С тригонометрией и экспонентами дела похуже, конечно  Цитата(Прохожий @ May 25 2009, 22:06)  Есть варианты PLC и на AVR. Огласите их поименно, плз
|
|
|
|
|
May 26 2009, 17:04
|
deleted
   
Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024

|
Цитата(Прохожий @ May 25 2009, 22:06)  Я бы для осознания процесса порекомендовал бы сначала поиграться с так называемымы "реле" в виде ZEN от того же OMRONа или LOGO от SIEMENS. Для ZENов существует симулятор. Так что можно и виртуально все это сделать... А что касается 32-битного ядра, то в данном случае это уже не важно... Есть варианты PLC и на AVR. К сожалению, пока что железа доступного для обучения и "лабораторных работ" нет. Имеется тут некий зоопарк из работающих Омронов, Сименс и Мцубиши, еще Дельта с татчскрином скоро приедет,- не знаю пока, что со всем этим делать... наверное с асм на Си проще перейти, а главное, во всех этих примочках нарушен принцип KISS, который как бы, стараюсь блюсти.. ЗЫ, топикстартеру- начните с ассемблероподобного стиля, Си к этому располагает, ну а потом уже потихоньку( или как пойдет) перейдете на высший пилотаж, и пусть меня zltigo не ругает (он потом подскажет), не все ж горшки сходу обжигают
|
|
|
|
|
May 28 2009, 18:18
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(_Pasha @ May 26 2009, 11:43)  Огласите их поименно, плз  Здесь это уже было как -то. По моим данным вот это AVR. Можно и попроще - это точно AVR, весь верхний ряд. А можно и совсем просто - тут AVR и PIC. Софт по последней ссылке опробован на PIC16F877. На удивление, все работает. Правда, память быстро заканчивается. Можно и еще чего-нибудь добавить...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|