Ревич «Практическое программирование Микроконтроллеров AVR на языке ассемблера»

Распечатать
Автор:		Юрий Ревич
Название: 	Практическое программирование
		Микроконтроллеров AVR на
 		языке ассемблера
Издательство: 	Bhv

Отличная книга. Из серии настольных. Автор очень доступно, подробно, без занудства и заумностей рассказывает как использовать все то богатство, что разработчики из Atmel напихали в свой контроллер, причем книжка свежая, а значит контроллеры там уже из современных. Разобраны все периферийные устройства, а также на конкретных практических примерах наглядно показано, как воспроизводить звуки через ШИМ, как писать и читать на MMC флешки, как пользоваться компараторами, АЦП, SPI, TWI. Есть целый раздел посвященный математике на микроконтроллерах. Сложение, деление, умножение целых и дробных чисел. Как со знаком, так и без. В сочетании с даташитом или книгой Евстифеева дает практически полную информацию для работы с AVR. Также есть глава посвященная связи МК с компом. Есть пример проги на Delphi для работы с COM портом. В общем, настоятельно рекомендую скачать, а можно и в бумаге заиметь, не помешает.

Скачать с DepositFiles (6Мб)
Скачать с LetItBit (6Мб)

Запись опубликована в рубрике Книги с метками , , . Добавьте в закладки постоянную ссылку.

53 комментария: Ревич «Практическое программирование Микроконтроллеров AVR на языке ассемблера»

  1. A-10 говорит:

    Вот как раз позавчера заказал себе сию книгу, и еще одну («занимательная микроэлектроника») этого же автора. Позырил предварительно в электронном виде — действительно, стиль изложения у него очень хороший (особенно для начинающих вроде меня))).
    Спасибо за ссылки на полезные книги, часть я себе уже купил и очень рад :)

    • DI HALT говорит:

      Да, вторую я себе тоже скачал сегодня. Скоро выложу. Пробегусь только по ней поподробней.

    • cahbtexhuk говорит:

      счастливый обладатель «занимательной микроэлектроники». полезная книжка, много интересных фич натырил и узнал.
      А есть чо по АВР и их программированию на сях? А то аассемблер как-то не улыбается изучать :(

      • VBKesha говорит:

        Чтобы програмить их на сях надо забыть что они микроконтроллеры, и просто програмить на сях(глянь примеры к любой среде там многое станет ясно, книжка там не нада)

        • SWG говорит:

          «забыть что они микроконтроллеры» — не получится. Все равно останется много низовой работы на уровне регистров, знание периферии и работа с регистрами конфигурации. (Это не Винда с ярлычками). А для оптимизации работы программ все равно придется использовать ассемблерные вставки, просматривать и переделывать откомпилированный в С код. Разве что программирование математики с плавающей точкой облегчит, но какой ценой… да и не так уж часто в управляющих программах нужна сложная математика. Зато все равно нужно знать устройство используемого контроллера и его возможности.
          А чтобы «забыть» — понадобится немеряно памяти программ и даннных, огромное быстродействие, куча периферии. Такое возможно только с навороченнными 32х битными, но они создадут кучу аппаратных проблем, — как разместить на плате и развести всю эту многоногую хрень с кучей обвязки… Это уже не для новичка. А для мелких контроллеров, 8-20 ног, где периферию и регистры можно на пальцах пересчитать, программирование на С сводится к элементарным командам — эквивалентам ассемблерных, поскольку на сложные функции просто памяти не хватит. Мы тут уже осенью прикидывали, сколько килобайт занимает программа, всего лишь выводящая на индикатор строчку «Hello, world», написанная на С… (на ассемблере ~0,3).

          • cahbtexhuk говорит:

            >Мы тут уже осенью прикидывали, сколько килобайт занимает программа, всего >лишь выводящая на индикатор строчку “Hello, world”, написанная на С… (на >ассемблере ~0,3).
            Гхм… Ну честно говоря не думаю, что все так жестоко. Я на ПИКах сижу, пишу на mikroC, там в халявной версии ограничение на 2 кб output file size. В эти два килобайта можно много чего вписать… У меня книжечка лежит «создайте робота своими руками» — там чудак вобще в 2 килобайта умудрился RtOS впихнуть. На Сях написанную.

          • DI HALT говорит:

            Два килобайта на РТОС? чето много, я в 600байт уложился :) И еще можно заоптимизировать, байт до 500. Скоро выложу.

          • SWG говорит:

            Я уже упоминал здесь раньше, что в 80х годах делал на работе для нужд производства микроконтроллеры сначала на 580ИК80, потом на 1816ВЕ35, 48, так я там ухитрялся в 2-4Кб ПЗУ запихать программы, которые в реальном времени работали с 4-5 телеграфными каналами, имели программные часы, календарь, выдавали результаты измерений по запросу или через заданные интервалы времени, вели диалог через телеграфный аппарат с оператором и еще много всякого. Голый ассемблер, и никаких С… А на отладочном компьютере, тоже самодельном, на 580ИК80, программа программатора для программирования 573РФ2 занимала 64 байта!
            Кстати, в упомянутом уже обсуждении “Hello, world”, я компилировал программки на МикроПаскале, МикроСи, МикроБэйсике от Микроэлектроники, и получил результаты, поразительно отличавшиеся от всяких «крутых» компиляторов С. Подробнее можете глянуть в той теме: http://easyelectronics.ru/skazhu-paru-slov-o-optimizacii-koda.html#comments

          • DI HALT говорит:

            Не знаю как насчет Микро… т.к. с пиками не работал. А вот на AVR из сишных компилеров уважаю только IAR вот он реально шедевральный код дает. Я из него несколько приемов подчерпнул для себя. Но оно и понятно, АВР делался совместо с IAR и они созданы друг для друга. Но иар, падла, стоит дофига и защита у него крутая, а крякнутые версии я ни разу адекватные не видел. Ну и настроить его для работы это та еще головоломка.

          • SWG говорит:

            Так у Микроэлектроники компиляторы не только для PIC, но и для кучи других процессоров, в т.ч. и AVR. Я же давал для сравнения примерчики, откомпилированные и для PIC, и для AVR.
            http://www.mikroe.com/en/compilers/
            Попробуй, не пожалеешь! Удобнее их только DELPHI.

          • DI HALT говорит:

            Не, я лучше по GCC позагоняюсь. Больше примеров, больше кода готового.

          • SWG говорит:

            Так и у Микроэлектроники есть примеры по всей периферии: UART, I2C, ADC, PWM, c ЖК индикаторами — символьными и графическими, и многое другое. И куча встроенных функций для них, которые сводят работу с теми же UART, I2C, ADC, PWM к 2-3 командам вместо десятков и сотен строк. А главное — очень экономный компилятор, дающий компактный код. Я в своем роботе все никак 2 кб не наберу, а уже столько напихал… А до 2кб — никаких регистраций и ключей не надо. Пока понадобится больше, наверняка кряк найду.
            А GCC я пробовал, — такая гадость. И размеры кода ни в какие ворота не лезут, и глюков полно, и неудобный страшно…
            Ну его в болото…

          • cahbtexhuk говорит:

            вот я и мацаю его же. правда там иногда такие глюки бывают, я изъебался с чтением ds1820, а оказалось, что надо было температуру не сдвигать, а делить на два. хотя типа равносильно. обнаружил чудесным образом.

          • SWG говорит:

            Ну, это не глюк, а особенность. Операции сдвига в языках высокого уровня работают не с физическими регистрами, а с переменными, имеющими разный формат, и нельзя просто отоджествлять их, например, с работой команд ассемблера. Если уж нужно, лучше вставить в текст несколько ассемблерных команд, это просто. Или хотя бы проверить, как этот кусок реализовал компилятор.

          • DI HALT говорит:

            Для работы с периферией Си нафиг не нужен. Тут и ассемблера хватает за глаза и не напрягает. Си нужен там где в ход идет тяжелая артиллерия TCP/IP, CAN, USB, FAT и MMC и прочие геморойные вещи. На GCC все это уже давно написано и портировано, а на микроэлектронике?

            Да и не такой он уж и глючный. Там есть ряд заморочек но это один раз вкурить и все.

          • SWG говорит:

            Для крутых серий контроллеров наверняка все есть, но я пока ими не заморачивался. (Есть поддержка для PIC17,18,24,30,33!) Для моих нужд за глаза PIC16 (пока до 877), из ATMEL — до Мега 32,64,128. Потребуется круче — освою, пока же зря забивать башку — без нужды. (К тому времени, когда понадобятся, возможно, появятся более привлекательные решения). А при моих потребностях использовать GCC — да уж лучше я на асме буду писать…

  2. tripsin говорит:

    Хорошая книга. Недавно себе бумажную. Понятно написано.

    • nwanomaly говорит:

      видел её бумажную, но как на зло в кармане не хватило рублей 50, чтобы её взять (
      не скажу, что там для меня были СверхОткровения, но кое-какие вещи полезны, плюс я постоянно забываю разные нюансы, если долго не програмлю.

  3. SWG говорит:

    Попробовал скачать, посмотрел рекламу, подождал минуту, ткнул ссылку, — получил ERROR… На какой-то другой книжке раньше тоже такое было. Может, лучше использовать какой-нибудь нормальный файлообменник? А то пропадает желание качать эти книжки. Да, в общем то, почти во всех — одно и то же, в основном пересказ фирменных даташитов, часто с ошибками. Уже столько книжек по AVR накопилось, читать некогда. Читай — не читай, а пока простенькую платку не спаяешь да вживую с портами, таймерами, UART, ADC, ШИМ не поработаешь, толку не будет. Неделя — другая практики даст больше знаний и опыта, чем годы чтения (и изучения С).

  4. testicq говорит:

    Полистал электронный вид и побежал заказывать себе такую. Действительно все подробно и по порядку излагается. Евстифеева уже излазил от корки до корки, но сухой даташит нужно все-таки чем-то разбавлять. (Кстати даже в 4-м издании Евстифеева есть ошибки — не стоит полностью на него полагаться, лучше проверить)

  5. _riko_ говорит:

    Действительно… в книге присутствуют некоторые «баги» типа, несуществующей команды SUCI Наверное, всем будет ясно, что это автор имел ввиду мнемокод CBCI =)…. а так, это зачотная книга. Нашел в ней ответы на кучу вопросов!

  6. YurkaM говорит:

    Если у кого с летитбитом проблемы, вот тот же файл на Рапиде:
    Качать!

    xx на tt не забудьте поменять :-) (Не знаю я как тут культурно ссылки вставлять…) Не парься, я подправлю. DI

    • SWG говорит:

      С Рапиды — без проблем. Качнул.

      • DI HALT говорит:

        Как тебе это удается? Я с рапиды ни разу еще удачно ничего не скачал. Даже пытаться перестал.

        • SWG говорит:

          Без проблем. Сначала скачался маленький (несколько кб) файл. Меняешь ему тип .RAR на .HTM и запускаешь. На страничке две больших круглых кнопки — Free и Premium. Жмешь Free, идет отсчет времени сек 30-40, и появляется большая круглая кнопка DOWNLOAD. Жмешь ее, и сохраняешь файл как обычно. Класть на Рапиду еще проще. Правда, без Премиума сейчас дают скачать только 10 раз, или 90 дней после последней скачки, потом ссылка удаляется.

          • DI HALT говорит:

            Вот у меня после отсчета почему то не дает ссылку, а выбрасывает опять на выбор фрии или премиум. И так кругами.

          • SWG говорит:

            Такого вроде не было. Иногда выдает, что лимит превышен и надо подождать. Если дома и лень ждать (надо, например, качнуть много чего подряд) — отключаюсь и снова подключаюсь к Интернет. Айпишник меняется, можно качать без паузы. На работе хуже — у всех через Прокси — сервер — один IP, часто выдает, что с вашего уже качают. Приходится ждать. Но сама скачка — без проблем, и быстро.

        • YurkaM говорит:

          На этот случай есть чудная програмулька Universal Share Downloader (USDownloader)
          Очень помогает при сливе со всяких файлообменников. Автоматом проходит места, где требуются действия юзера типа ввести код и т.п. Можно накидать ссылок и идди спать.
          Оф. сайт http://www.dimonius.ru/dusd.php
          И на Ру-борде по ней всё разжевано.

  7. YurkaM говорит:

    Тут спрашивали про Си… Валяется в инете такая:
    ——-
    Название: CodeVisionAVR. Пособие для начинающих
    Автор: М. Б. Лебедев
    Издательство: Додэка XXI
    Год: 2008
    Страниц: 592
    Формат: djvu-rar+% восст.
    Размер: 62 Мб
    ISBN: 978-5-94120-192-1
    Качество: Отличное
    Серия или Выпуск: Программируемые системы
    ————
    Кто-нить листал?
    Уж больно здоровый файл.. 62метра в djvu !! И ещё есть к ней диск 32метра! Чего там напихано-то?? Рекламные картинки что-ли?

  8. YurkaM говорит:

    Оно на Натахауз валяется

  9. Alex_7v говорит:

    На этом сайте http://rbook.ucoz.ru/publ/19 много книг по AVR ,PIC и др.Вобщем радиолюбительская библиотека

  10. tchicago говорит:

    Не, ну на С надо переходить, это однозначно. Иначе это тупик. Я в свое время освоил Пики на асме. Что толку, как освоил, так и забыл, ибо на уровне ассемблера архитектура системы очень специфична, и подробное его знание в голове является мусором. Это дело компилятора — сгенерить оптимальный код для данной архитектуры. А мое дело правильно дергать за биты в портах, и правильно все заалгоритмизировать, что к ассемблеру почти не имеет отношения.

    Понадобится перейти на ARM, начинать штудировать его ассемблер с нуля?

    Универсальный инструмент программирования должен быть в голове один — С. Тогда особенности архитектуры сводятся только к описаниям периферийных устройств, их номерам портов и адресам памяти.

    • YurkaM говорит:

      > Тогда особенности архитектуры сводятся только к описаниям периферийных устройств, их номерам портов и адресам памяти.

      Ну, освоив вышеозвученное, можно считать что вы уже знаете асм на 80-90% (для данного камня)…

  11. dan...is говорит:

    …пол дня искал описание suci….мдя…нельзя так с начинающими…

    • DI HALT говорит:

      Гхм. Начинающий != Тупой. Если понятно что делает команда, а команды такой нет, значит опечатка и надо найти ту команду которая делает эту же операцию. Не вижу проблемы.

      Но вот сама комада suci это странно. Откуда она ваще? Из ранних АВР? Дак нету там. Выдумка автора? Хм, порывшись я нашел ее упоминание в другом источнике — на немецком форуме. Причем в одном контексте используется и suci и cbci

  12. Sarge говорит:

    там выше говорилось, что должна появится и «занимательная микроэлектроника» этого автора, так появится она или нет? я чето в инете ее нигде найти не могу(

  13. PipEtS говорит:

    Кто подскажет, где можно найти в электронном виде «Занимательная микроэлектроника — Юpий Peвич» 2006 или лутше 2007 ( т.к. 2005 уже есть), мои поиски не дали результатов.
    DI HALT у тебя какой год книги??

  14. Rainboy говорит:

    только что начал изучать AVR по ревичу и тут же несколько ошыбок в книге. помню только последнюю. автор халявщик или же я не кибермозг)ггг

  15. Ageofenigma говорит:

    http://www.twirpx.com/files/special/electronics/
    тут туча всяких книг…..правда скачивание лимитировано…..вломно всё время разные мыла регить….

  16. Ageofenigma говорит:

    вот только что скачал оттудова «Занимательная электроника» 2007го года издания!
    Качество очень даже неплохое!

  17. PipEtS говорит:

    to Ageofenigma

    а выложить можеш, пожайлуйста, на файлообменнике “Занимательную электронику” 2007го, а то у них чето поиск глючить и эту книгу не находит :(

  18. PipEtS говорит:

    to Ageofenigma
    все заработало, после регистрации

  19. Melted Metal говорит:

    «»A-10 13 Фев 2009 2:32

    Вот как раз позавчера заказал себе сию книгу, и еще одну (”занимательная микроэлектроника”) этого же автора»"

    Аналогично =)

  20. BeforyDeath говорит:

    книга — «Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel»

    прямая на depositfiles — http://depositfiles.com/files/da66amo3d

  21. R_ura говорит:

    Вот книги без всяких заморочек скачиваются.
    http://avr.ru/docs

  22. Sergey68 говорит:

    А что лучше, эта книга, или второе издание?
    http://www.gorodknig.com/pID/20247

  23. AAC говорит:

    Классная книжка! Читается очень легко. За три дня прочитал! Многое прояснилось. Рекомендую!

Добавить комментарий