Программирование Си

Обсуждаем цифровые устройства...
Ответить
Прорезались зубы
Сообщения: 218
Зарегистрирован: Вс мар 18, 2012 09:31:23

Сообщение Nikitka »

Добрый день. Вот собрался изучить язык Си, для программирования МК типа Atmega ну и т.п. Не знаю с чего начать, где взять простейший учебник по программированию микроконтроллеров, что значит 0xFF и т.п. там не описывается... Короче мне нужен учебник чтобы было всё понятно даже такому тупому существу как я.... Есть ли такие и с чего начать?
Реклама
Вымогатель припоя
Сообщения: 536
Зарегистрирован: Пт ноя 05, 2010 12:53:36
Откуда: Беларусь Витебск

Сообщение Minor/2 »

http://avr123.nm.ru/01.htm Настоятельно рекомендую и пользуясь случаем, еще раз благодарю автора этого изумительно изложенного труда !!!
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Сообщение SubDia »

Автору этого, с позволения сказать, "труда" нужно глаза выколоть за абсолютно нечитабельный и невоспринимаемый текст и скачущие шрифты.
Рекомендую книгу Лебедева "CodeVision AVR. Пособие для начинающих"
Все, что касается CVAVR, можно пропустить, а вот азы программирования МК AVR на Си там изложены великолепно.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Nikitka писал(а):мне нужен учебник чтобы было всё понятно даже такому тупому существу как я.... Есть ли такие и с чего начать?
Есть очень толковый учебник по программированию встроенных систем на C: Michael Barr, Anthony Massa. Programming Embedded Systems: With C and GNU Development Tools.
Изображение
Судя по вопросу по 0xFF, не мешало бы также подтянуть основы. Рекомендую пару учебников:

Steven F. Barrett, Daniel J. Pack. Microcontrollers Fundamentals for Engineers and Scientists
Изображение
Steven F. Barrett, Daniel Pack. Atmel AVR Microcontroller Primer: Programming and Interfacing
Изображение
Книги написаны достаточно доступно для начинающих.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6340
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Насчет бесплатного выпуска "изумительного труда"... Эйцвейдрей, пинками прогнанный с нескольких любительских форумов за навязчивую рекламу самого себя ( кстати, на этом форуме он тоже тусовался с саморекламой, что-то затих, видимо - наваляли ) , эту обучалку использует тоже для рекламы своих "детали-почтой" . И аляповатый балаганный стиль - это не от желания доступно изложить основы, а для привлечения клиентов, как дикарей - стеклянными бусами. Что ж, каждый делает свой бизнес как можешь, без настырности --разоришься.
Заметьте, я поступил политкорректно - не стал расшифровывать его данные, которые вы легко найдете, есл дочитаете рекламируемую "Мурзилку" до конца. :)
Реклама
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Господа, а не слишком ли много чести для вышеупомянутого курса быть обсуждаемым столь долго и бурно? А уж в качестве повода для ссоры он и вовсе мелковат.

Давайте лучше вернемся к теме. Я собираю книги по этой теме, и мне, как и топикстартеру, было бы интересно выслушать ваши рекомендации по поводу действительно хороших учебников. Вдруг что-то достойное ускользнуло от моего внимания.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Вот не знаю, я начал изучение именно с даташита на контроллер. Это наиболее полное и концентрированное собрание всей необходимой информации. А дальше - простая логика...

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

"0xFF" - это лишь одна из форм записи целых чисел, причем именно эта - самая популярная, остальные формы записи могут варьироваться для разных компиляторов. Некоторые воспринимают ЛЮБОЕ число изначально как шестнадцатеричное а не десятичное. Из-за этого случаются непонятки когда пишешь 10 а программа почему-то выполняет 16 итераций. иногда прокатывают числа 0FFh но они всегда должны начинаться с цифры, поэтому такая форма записи требует внимания - когда надо вначале ноль поставить а когда не обязательно, а это место потенциальных ошибок.

А в общем, для начала пойдет любая книжка где есть пример создания простого устройства - мигалки светодиодом с подробным описанием в какой среде набирается программа и какие кнопки жать, один раз проходишь а дальше можно методом научного тыка выяснить что за остальные кнопки, менюшки и т.д.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Alexeyslav писал(а):...формы записи могут варьироваться для разных компиляторов. Некоторые воспринимают ЛЮБОЕ число изначально как шестнадцатеричное а не десятичное. Из-за этого случаются непонятки...
Вообще-то это грубейшее нарушение стандартов языка C. Например, в стандарте ISO/IEC 9899:1999 (E) (C99) в п. 6.4.4.1 Integer constants указано:

Код: Выделить всё

decimal-constant:
    nonzero-digit
    decimal-constant digit

octal-constant:
    0
    octal-constant octal-digit

hexadecimal-constant:
    hexadecimal-prefix hexadecimal-digit
    hexadecimal-constant hexadecimal-digit

hexadecimal-prefix: one of
    0x 0X
Лучше от такого компилятора держаться подальше, если только заказчик, вооруженный пистолетом, не требует пользоваться именно этим под страхом смерти. Нестандартное всегда чревато.

(Прошу прощения за оффтопик).
Последний раз редактировалось Goldsmith Сб июл 21, 2012 15:27:30, всего редактировалось 1 раз.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Достаточно взять за привычку указывать тип числа.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Alexeyslav писал(а):Достаточно взять за привычку указывать тип числа.
Уточните, пожалуйста.

Допустим, я указал, что переменная имеет тип short int. Например:
short int i = 10;
Какой компилятор C инициализируют переменную i значением 16 в десятичной системе счисления? Это действительно интересно, чтобы не нарваться на него невзначай.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Я с С дела не имел, это в ассемблере микрочиповском.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Alexeyslav писал(а):Я с С дела не имел, это в ассемблере микрочиповском.
Так тема-то, обратите внимание, называется "Программирование Си". Человек только начинает, просит помощи по программированию AVR на C. Не нужно его запутывать дополнительно, ему и так трудно.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Это только призыв к осторожности. Всякое может быть, надо иметь в виду что такие вещи надо выяснять до начала написания программы. А лучше записывать числа так чтобы не было неоднозначности.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Это точно. Залог успеха - доскональное понимание того, что делаешь, без домыслов и "авосей". А для понимания нужно знание. Ну а знания мы добываем в основном из книг. Так что вернулись к исходной теме - что почитать, чтобы не просто потратить время впустую, а действительно научиться?

Вот еще настоятельно рекомендую: James W. Grenning, "Test Driven Development for Embedded C".

Изображение

Книга о разработке действительно качественных программ для встроенных микропроцессоров, без надежды на "авось", который так часто подводит.

Прошу прощения, что рекомендую книги только на английском. Действительно стоящие книги почему-то переводят крайне редко. Может, их издание коммерчески невыгодно, а может, кто-то не заинтересован, чтобы мы умнели. Не знаю, но факт.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

SubDia писал(а):За посоветованные книги от меня большое человеческое спасибо.
Рад, что Вам понравилось.

Если интересуетесь качественной технической литературой, то не исключено, что найдете еще что-нибудь полезное для себя в моем мини-блоге. Ну а если захотите добавить свои личные рекомендации, буду очень благодарен - хороших книг слишком много не бывает.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
aen
Модератор
Аватара пользователя
Сообщения: 11940
Зарегистрирован: Пт апр 28, 2006 15:26:07
Откуда: Россия.

Сообщение aen »

Оффтоп убрал.
Контактная информация:
Ответить

Вернуться в «Цифровая техника»