Доброго времени суток, коллеги!
Подскажите толковую литературу по программированию AVR-ок на Си? Уровень: "совсем с нуля"
В принципе, по англицки читаю, даже чего-то понимаю
Заранее всем спасибо!
Доброго времени суток, коллеги!
Подскажите толковую литературу по программированию AVR-ок на Си? Уровень: "совсем с нуля"
В принципе, по англицки читаю, даже чего-то понимаю
Заранее всем спасибо!
Можно рекомендовать Шпака http://www.brain2life.com/book/149.html
Для начала вполне неплохо, но С надо изучать по Кернигану и Ритчи
Спонсор данного сообщения - Газпром.
Quasar
Спасибо!Книжку скачал, изучаю
Забыл сразу написать - есть некоторый, относительно небольшой опыт написания программ на С для РС... Так что азы языка в принципе не нужны, важна специфика работы именно с АВР-ами.
Костя Мусатов
Спасибо! Пойду почитаю...
Константин, ламерский вопрос: что значит "...разобраться с архитектурой процессоров"?Сообщение от Костя Мусатов
Поясните, пожалуйста.
Я не Костя Мусатов, но попробую пояснить.Сообщение от EDDiE
Большинство процессоров устроено одинаково, набор примерно одной и той же периферии, примерно одинаково управляемой.
Во всех процессорах управление периферией происходит чтением или записью в определенные адреса. Просто в более сложных архитектурах типа АРМ7 или АРМ9 появляются усложнения связанные с появлением PLL (и её уж как минимум надо иниациализировать) и MMU (соответсвенно новый подход к организации памяти). Ну а в общем во всех архитектурах, всё достаточно однообразно.
Последний раз редактировалось Quasar; 09.02.2011 в 03:04.
Спонсор данного сообщения - Газпром.
Квазр достаточно хорошо ответил. Разобраться надо именно с общими принципами построения периферийных устройств. Контроллер последовательного порта лучше изучить отдельно, на примере 51 микросхемы, а потом уже легко с ним работать внутри контроллера. Все части достаточно изолированы и поняв их легко использовать в комплексе.
ММU и другие системы управления памятью и задачами самому лучше не программировать, а использовать готовые шаблоны многопотоковых ОС: FreeRTOS, QNX, Linux-ы, WinCE и так далее.
Не совсем с "архитектурой". архитектура нужна, если на ассемблере (на низком уровне) программировать.
К счастью, современные процессоры имеют уже более-менее нормальные Си-компиляторы, так что надобность в ассемблере становится все меньше и меньше (надобности всю программу на асме писать уже давно нет, ее пишут на Си, а где надо - вставки на асме, но и их чем дальше - тем все меньше. Компиляторы совершенствуюся )
По сути - очевидно что коллегами под "архитектурой" имелось виду совсем другое.
Микроконтроллер - это не совсем как тот процессор, что в РС стоит
Самое главное что есть в МК - это его периферия.
Простейшая периферия - это I/O, порты ввода-вывода, т.н просто ножки, которые могут быть цифровыми входами или выводами.
А далее, в зависимости от МК, в периферии могут быть АЦП, ЦАпы, ШИМ-контроллеры, таймеры, контроллеры различных шин и коммуникаций (RS232, RS485, I2C, I2S, SPI, USB, CAN, Ethernet, etc.), вычислители (МАС-операции в DSP), слейв-порты, различные виды прерываний и т.д.
Плюс к этому- в МК есть такие специфические вещи именно для МС как выбр типа такового генератора (внешний кварц, внешний сигнал, внутренний осциллятор и т.д) и его частоты, вотч-дог, защелки на программирование и чтение и т.д.
Вот именно "это" и надо читать в даташите на конкретный МК.
А сам Си - "Керниган и Ричи"
Шутка.
Больше читать надо юзер-мануал от конкретного компилятора, поскольку те вещи, с которыми в РС не сталкиваешся - практически никак не стандартизированы.
Описания прерываний, конфигурационных регистров (фьюзов), размещения констант в памяти (и в какой памяти) - все это зависит даже не от МК а от компилятора. Для одного и ого же МК, в разных компиляторах оно может быть абсоютно по разному и совершенно не совместимо друг с другом (поэтому в МК не всегда исходники можно просто перекомпилировать другим компилятором - нужно "рихтовать ручками").
Остальное - все тоже самое что и на РС, разве что разумеется нет никаких аргументов в main, и для многих МК стараются поменьше пользоваться указателями (в РС все просто помешались на них, когда надо и когда не надо используют), и многомерными массивами.
Ну и такие тривиальные на РС вещи как printf/scanf - на МК имеют свои особенности.
"Замполит, чайку?"(с)"Охота за Красным Октябрем".
"Да мне-то что, меняйтесь!"(с)анек.
<-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.
Quasar,
Костя Мусатов,
Alex
Спасибо большое за участие!
Ищите 10 ступеней С. Рюмика. Или его Микроконтроллерное управление звуком. Автор реально с нуля рассказывает как научиться делать разные вещи на основе AVR-микроконтроллеров.
1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595
Alex_Jet
Довольно интересный материал, спасибо!
Вот еще парочка:
Андрей
Pyku_He_oTTyda
Спасибо тебе, добрый человек!
Социальные закладки