Что посоветуете читать?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

YS писал(а):Пишите программы и отлаживайте их на реальном железе.
А как писать программы на реальном железе ??? Научите.

Я вот VMLAB посоветовал для написания. А на железе то КАК ?
YS писал(а): Ни один эмулятор не сможет смоделировать систему абсолютно точно.
А это надо ?
YS писал(а): для начинающих хорош именно ASM, поскольку дает полное представление о процессах, происходящих в железе.
т.е. профи не нужно представлять что в железе ?

А как АСМ узнает о состоянии железа ? и вообще включено ли оно и существует ли ?

АСМ это програмная абстракция не имеющая отношения к железу.
YS писал(а): на С имеет смысл переходить только тогда, когда задача становится слишком сложной для написания на ASM
Нет конечно. Не надо учится Си на сложных задачах. НОРМАЛЬНЫЕ люди начинают с простых задач на ЛЮБОМ языке пограммирования.
YS писал(а): НИ ОДИН существующий компилятор с языка высокого уровня не способен сгенерировать оптимальный код.
А он нужен начинающему ОПТИМАЛЬНЫЙ ???

Начинающему нужен рабочий код.

ОПТИМАЛЬНЫЙ и рабочий - это ПРОФИ делает.
YS писал(а): Так что для начала - ОДНОЗНАЧНО ASM!
нет конечно если хотите реально программировать а не тратить время впустую почти.
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

А как писать программы на реальном железе ???
Я имел в виду то же, что и Вы: чтобы научиться писать программы нужно их писать, но зашивать в реальный контроллер на макетке, не доверяя симуляторам.
А это надо ?
:shock: Естесственно! Чтобы потом неделю не искать косяк в уже собранной схеме, нужно ее моделировать на макетке, я предпочитаю те, которые без пайки. В протеусе к MCU даже кварц подключать не надо. :shock: Сами разработчики признают, что модели процов убогие, почитайте хелп.
А как АСМ узнает о состоянии железа ? и вообще включено ли оно и существует ли ?

АСМ это програмная абстракция не имеющая отношения к железу.
:shock: Ну Вы даете! А Вы на ASM вообще когда-нибудь писали? Если код выполняется - значит железо есть и включено. :) На С используется куча библиотек, которая напрочь заслоняет от нас железо. Простой пример: Есть библиотеки для работы с LCD. При этом совершенно не нужно знать особенности протоколов и аппаратную реализацию всей этой кухни. Зачастую все сводится к вызову функции типа LCD_put_string(...); А что у нее внутри? Какими регистрами она манипулирует и что в них пишет?

А он нужен начинающему ОПТИМАЛЬНЫЙ ???
Оптимальный код нужен всем.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Я проводил эксперимент - написал в CVAVR программу, которая складывает два числа.

unsigned char a,b,c;

c=a+b;

После компиляции она заняла ПОЧТИ ТЫСЯЧУ строк ассемблерного кода! :shock:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Еще один пример - циклы. Пишущий на С понятия не будет иметь, как их реализует контроллер. На С тупо пишем: for (...). А что это связано с метками, с условным переходом... А про флаги если пишешь на С знать вообще не надо.
C заслоняет от нас архитектуру железа.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

YS писал(а):
C заслоняет от нас архитектуру железа.
Да. Тем Си и хорош для начинающих - позволяет не заморачиваться.

А профи может и зморочится так как знает как это сделать и как разрулить.

Вы на ПК ОС не используете ? онаж железо от вас заслоняет.
Реклама
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

YS писал(а):Я проводил эксперимент - написал в CVAVR программу, которая складывает два числа.

unsigned char a,b,c;

c=a+b;

После компиляции она заняла ПОЧТИ ТЫСЯЧУ строк ассемблерного кода! :shock:
Для строкобоязненых есть WinAVR БЕСПЛАТНЫЙ и даже еще менее строчный IAR !!!
Страница 4 в моей домашней страничке. Компиляторы и симуляторы для AVR.
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Хотю начать с книги Белова
Только не с этой, это больше справочник. Советую "Самоучитель разработчика устройств на микроконтроллерах AVR" Тоже Белова.

Предупреждаю: в книге много опечаток, но если думать, сразу их видно.

Все примеры даны на С и ассемблере. Советую смотреть ассемблер, а С пока не трогать. Да, и читать сначала. Там и логика, и как считать в разных системах счисления, короче много полезного.
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

кагбе зобанте афтара чтоле
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Да. Тем Си и хорош для начинающих - позволяет не заморачиваться.
Именно этим С и плох для начинающих, которым прежде всего нужно изучить и понять архитектуру железа. Изучение контроллеров есть прежде всего изучение их архитектуры и идеологии написания программ под них. Языки высокого уровня стирают различия между платформами, что делает бессмысленной саму постановку вопроса об изучении конкретного семейства МК. Если по Вашему рассуждать - так проще и лучше взять какой-то там Box от Sun, где пишут на Java, и вообще забыть про то, как оно работает на физическом уровне. Это хорошо, если Вы сегодня хотите написать прошивку, а завтра продать этот девайс и срубить денег, и Вам класть на то, что 45% ресурсов кушает виртуальная машина - деньги капают, народ покупает, и ладно. Так скоро не останется ни одного человека, который бы знал, что такое флаги и регистры.
А профи может и зморочится так как знает как это сделать и как разрулить.
А откуда берутся профи? Из начинающих. А если человек с самого начала понятия не имеет о устройстве железа, откуда он узнает, "как это сделать и как разрулить" ?
Вы на ПК ОС не используете ? онаж железо от вас заслоняет.
Я же говорю - это не холивар, я совсем не против С, только применять его стоит лишь там, где невозможно применить ассемблер. Писать на С бегущие огоньки смешно - это как из пушки по воробьям. Писать на ассемблере преобразование Фурье - мазохизм. Во всем нужен разумный подход. И для изучения работы железа лучше ассемблера ничего не найти.

На ПК я обычно запускаю проги гораздо сложнее бегущих огоньков. Более того, есть ОС для МК, только зачем это начинающему? Зачем начинающему забивать мозг фишками высокоуровневого програмирования, если он с железом не до конца разобрался!? Переходить к высокоуровневым языкам имеет смысл только тогда, когда твердо знаешь, как работает железо.
Для строкобоязненых есть WinAVR БЕСПЛАТНЫЙ и даже еще менее строчный IAR !!!
И чего? IAR выдает вместо 1000 строк 500? Класс! Достижение! Когда достаточно трех команд, фанатам С, увы, неведомых. :cry: :)))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Томатный писал(а):кагбе зобанте афтара чтоле
а за что мя банить?
:shock:
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

YS писал(а):
Да. Тем Си и хорош для начинающих - позволяет не заморачиваться.
Именно этим С и плох для начинающих, которым прежде всего нужно изучить и понять архитектуру железа.
Вы когда молоток берете вы его изучаете или им гвозди забиваете ?

А если человек машину берет то он едет на ней или изучает ?
YS писал(а): Языки высокого уровня стирают различия между платформами, что делает бессмысленной саму постановку вопроса об изучении конкретного семейства МК.
Это и удобно новичку с недостатком знаний.
YS писал(а):я совсем не против С, только применять его стоит лишь там, где невозможно применить ассемблер.
Бредятину ДИВНАЯ !

Привидите пример где НЕВОЗМОЖНО применить АСМ ???????
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

YS писал(а):Когда достаточно трех команд
Вы даже не умеете что-то сравнивать !

Все равно что взвесть кусочек сахара в железном тазу не учитывая его вес.

Человек имеющий МОЗГ очевидно написал бы программу и откомпилировал ее - т.е. "взвсесил тару".

Потом бы добавил ваши выражения и снова откомпилировал.

Разница двух варивнтов - это был бы "чистый вес".

Вы же чушь пишите.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Вы когда молоток берете вы его изучаете или им гвозди забиваете ?

А если человек машину берет то он едет на ней или изучает ?
И в том, и в другом случае неплохо бы объект изучить. Человек, не сдавший на водительские права, далеко не уедет. :wink: Так что, машину мы, все же, сначала изучаем. :) Хотя, не спорю, кто-то права просто покупает. :)
Привидите пример где НЕВОЗМОЖНО применить АСМ ???????
Вы горите желанием писать преобразование Фурье вручную на асме? Ессно, проще взять сишную библиотеку. Невозможность применения вытекает из неоправданной сложности.
Это и удобно новичку с недостатком знаний.
У новичка какая цель? Сегодня написать программу и завтра продать девайс, или в деталях разобраться в архитектуре? Мне кажется, второе. Первое скорее присуще именно профессионалу, поскольку именно его время поджимает сильнее всего. Кроме того, как мне показалось, топикстартер выразил желание именно разобраться в архитектуре, а не как можно быстрее заставить работать проект.
Все равно что взвесть кусочек сахара в железном тазу не учитывая его вес.
Проблема в том, что С нам насильно пихает не таз, а вагон с душем, туалетом и рестораном на 300 мест. И чтобы сгенерированный код работал, нам нужно ВСЕ это зашить в контроллер. Так что сравнение вполне корректно. А память МК не резиновая, да и вычислительная мощь - не Core 2 Duo... Как Вы заставите работать на МК кусок кода, выдранный того самого "таза"? Только ручная правка ASM кода. А не проще сразу на асме писать?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
DiGiCat
Друг Кота
Сообщения: 4793
Зарегистрирован: Пт июл 11, 2008 09:42:35
Откуда: Made in USSR

Сообщение DiGiCat »

YS +1, токма ikarab по большому счету на все это покласть... цель у него другая - загнать побольше народу на свой сайт с "курсом", по сему и все многочисленные сообщения (СПАМ) и "ответы" на любой вопрос в форуме в основном такого на 2/3 содержания:
ikarab писал(а):Я советую начать читать и учиться программаторовать микроконтроллер AVR с моей домашней странички
ikarab писал(а): Конпка www и домик под этим постом..
ikarab писал(а): Мой курс в домашней страничке
ikarab писал(а): Страница 4 в моей домашней страничке. Компиляторы и симуляторы для AVR.
ikarab писал(а): на заглавной страничке курса скачать
ikarab писал(а): я советую МАСТЕРОМ создавать код в CVAVR
ikarab писал(а): Для обучения рекомендую использовать компилятор CVAVR и симулятор PROTEUS !
- которые надеюсь ясно где предлогается взять.. , все его ответы всеравно сводятся к предложению сходить на ... "курс" :)))
Время на полемику с ним только зря тратить..
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

DiGiCat, спасибо за поддержку, Вы еще один здравомыслящий человек в этой ветке.
Время на полемику с ним только зря тратить..
Да нет... Должен же кто-то указать правильный путь. Повторю в сотый раз: лучше Обучалки РадиоКОТа для начала с нуля я еще ничего не видел. Есть только одно замечание: все же AVR Studio поудобнее блокнота, и AT90S2313 уже не производят... :wink: А так - однозначно начинать надо с Обучалки. А потом читать даташиты и расти... Есть еще хороший сайт www.easyelectronics.ru . Но это уже потом...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18884
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

YS писал(а):лучше Обучалки РадиоКОТа для начала с нуля я еще ничего не видел
Чтобы начать с нуля, обучалка хорошая, но в ней нет например ничего о работе с LCD дисплеями. И еще много чего нет, что понадобится даже начинающему.
Аватара пользователя
DiGiCat
Друг Кота
Сообщения: 4793
Зарегистрирован: Пт июл 11, 2008 09:42:35
Откуда: Made in USSR

Сообщение DiGiCat »

Да, ОБУЧАЛКА РадиоКОТа есть и для начинающих там все неплохо расписано и в примерах показано, статьи есть на сайте по LCD и не только, дальше уже кому чего для дальнейшего нужно будет, то не составит труда найти, есть даташиты и много книг, AVR (и на сайте у него есть вкусное) и другие здесь на подсказки вобщем то не скупятся.
Чей ресурс и курс лучше и правильней - их много и полезное найти не составляет особого труда при желании, на раз-два-три тоже кой чего для себя кто то и найдет, но почти в каждом сообщении, на любой вопрос отвечать "пойди на курс 123.."... перебор прям какой то.. :shock: :)))
Последний раз редактировалось DiGiCat Чт июн 25, 2009 18:09:39, всего редактировалось 1 раз.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

У LCD дисплеев есть даташиты. :wink:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18884
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

YS писал(а):У LCD дисплеев есть даташиты. :wink:
И начинающему достаточно прочитать даташит? У МК AVR то-же есть даташиты, зачем тогда обучалки? ;)
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

Сообщение saschai »

Повторю в сотый раз: лучше Обучалки РадиоКОТа для начала с нуля я еще ничего не видел. Есть только одно замечание: все же AVR Studio поудобнее блокнота, и AT90S2313 уже не производят... А так - однозначно начинать надо с Обучалки
Поддержу, но только то, что связанно с прерываниями и оперативной памятью, для новичка , без получения дополнительных, консультаций воспринимается достаточно тяжело, кстати, я считаю, что фактически любой обучальник, дает избыточную информацию на начальном этапе, тее излишне разжевывая, то, что в принципе и так понятно, а вот на более сложных и значимых моментах проскакивает, видимо исходя из того, сто прочитав первые менее значимые части мы становимся профессионалам. На самом деле АСМ изучал в основном в познавательных целях, старый я мозг уже не тот :)) , согласен, что простой код(ну да те же бегущие огоньки, точки и тп)на Асм более компактен, да волей не волей заставляет изучать внутренние процесы и архитектуру МК, но в институте в 1983 году, я изуыал Бейсик,самостоятельно, была у нас машинка Д3-28, с кассетным загрузчиком :)) , и никто не знал, что с этим чудом делать :)) , по сему Васик мне роднее и ближе, сейчас раздадутся крики типа в помойку!, гумно! Так вот я не соглашксь, по крайней мере свою первую прошивку для МК(ну как же без этого, конечно автомат световых эффектов с ЖК индикатором :)) ) я написал за два дня, читая исключительно хелп :)) , но надо отдать должное на АСМе я написал тоже самое за пол дня, правда допущеннцю ошибку отлавливал вторую половину дня :)) , но от Васика получаешь большее эстетическое наслождение в процессе работы и отладки.
Кстати написал несколько прошивок на СИ, язык знаю достаточно неплохо, безотносительно МК, но не затянуло, а может быть поленился...
Все что написанно исключительно мое частное мнение и я его никому не навязываю :))
Ответить

Вернуться в «МЯЯЯУ!»