Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 24.07.2007, 21:03  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Млин, тыщу раз эта тема полымалась. Все упирается в одно - цену вопроса. Код в 100 строчек на ассемблере и на си программист напишет приблизительно за одно и то же в ремя. Но это РАЗНЫЕ 100 строчек. И поэтому работодателю выгодно, чтобы его программист писал ему на Си. А не на асме. Больше напишет.
Реклама:
urry вне форума  
Непрочитано 24.07.2007, 21:07  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

и когда уволится, другому програмеру легче будет в кракозябре разобраться.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 24.07.2007, 21:30  
borshef
Частый гость
 
Регистрация: 09.05.2006
Сообщений: 19
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
borshef на пути к лучшему
По умолчанию

Тема то про АСМ, а не про то, что лучше/хуже или нравится/ненравится. Для Си есть другие темы, там обсуждают только Си и ничего кроме Си, всем любителям АСМа сюда, а любителям Си туда. Кто хочет обсудить что лучше - создайте соответствующую тему и вперед и с песней
borshef вне форума  
Непрочитано 24.07.2007, 22:03  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
и когда уволится, другому програмеру легче будет в кракозябре разобраться.
Несколько лет назад появилась серия статей по устройствам на базе AT89C2051.
Автор Ридико Леонид Иванович.
Исходники на асме с отличными пояснениями в листинге.
Так эти исходники понятны даже тем, кто совсем "Войдите"...
Главное как человек делает работу.
Если делает кракозябры, то там и разбиратся нечего.
Внизу пример комментариев от Леонида Ивановича.
Подробный и понятный.
Новые разработки он делает на АВР.

-- Прилагается рисунок: --
lsa вне форума  
Непрочитано 24.07.2007, 22:27  
Andrewg
Прописка
 
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrewg на пути к лучшему
По умолчанию

Спасибо всем! Информации более чем достаточно, поможет не только мне.
Мне нужно было увидеть только структуру программ на ASM для AVR.
В программировании не новичок, на ЯВУ под PC программирую начиная с далёкого 1988г. Но для AVR в си есть отличия в структуре программ чем в си для PC.
В принципе все языки отличаются только структурой, синтаксисом, а в основном всё так же.
До этого для 51 писал на асемблере, вполне для всех задач хватало до недавнего времени. Начинал с него, когда AVR ещё не было, а переходишь когда уже совсем подожмёт, время на обучения нет и есть куча наработок для старой платформы. ))
Столкнулся с нехваткой ОЗУ. Для страничной записи 24С512 нужен буфер 128 байт.
Можно было бы писать побайтно, но ресурс 100 000 раз циклов записи, не важно побайтно или постранично. А записывать надо часто. Выход, писать постранично.
Хочу добавить, что объёма для памяти программ всегда хватало.
Кто знает ассемблер, тот точно знает, что происходит, контролирует каждый такт,
Компактней код уже не сделаешь, конечно если всё продуманно правильно. И ресурсы используешь экономно.
А в си, вызываешь функцию и не знаешь, как и что происходит.
Когда знаешь ассемблер, можно делать всё что угодно.
Для себя считаю что Си+ Ассемблер когда это необходимо.
Си- для быстроты и удобства написания, ассемблер- для гибкости, когда не можешь что-то реализовать на си.
Нужно правильно использовать ресурсы МК, а не так как учит avr123, к примеру в своём курсе предлагает использовать в качестве флага символьную переменную.
Нужен один бит, нет, будем использовать байт. А если флаг нужен не один, а десять, двадцать? Следуя его советам взять контроллер с большей памятью. Получается с пушки стрелять по воробьям. Стандартное написание в битовом выражении, предлагает использовать так как он это видит используя его хидеры, и т.д.
Тот кто начинает с нуля, следуя этим правилам сразу принимает неправильный стиль программирования.
Если неправ поправьте, ответы avr123 не комментирую.
Andrewg вне форума  
Непрочитано 25.07.2007, 00:54  
AVR-forever
Прописка
 
Регистрация: 16.04.2007
Сообщений: 146
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AVR-forever на пути к лучшему
По умолчанию

Цитата:
А в си, вызываешь функцию и не знаешь, как и что происходит
Ну не знаю как у вас, а я точно знаю, что происходит. Ибо происходит всегда одинаково и оптимально. Частенько смотрю, что компилятор там наделал. Кстати хороший способ поучить ассемблер. Могу поспорить с кем угодно, хоть плюйтесь, проект больше световых гирлянд за НОРМАЛЬНОЕ!!!! время не напишите оптимальное на асме, чем на С. Почему? Да потому что, компилятор в автомате делает одну очень геморройную работу, которую вручную заебё… делать. Он выносит одинаковые куски кода в подпрограммы. Откройте какой нибудь асм скомпилированный компилятором и убедитесь какое огромное количество этих кусков. Или сложные процедуры. Ну фанаты асма, давайте на скорось напишем программу деления два 32 битных числа с плавающей точкой. Я не против асм. Сам когдато писал всё на чистом асме. Просто очнитесь, где вы живёте. На дворе уже век роботов! Уже С считается асмом, а в почёте языки типа VisualBasik или Java которые всякими framevorke-ми пользуются. Я не против асма. Просто уже тошнит доказывать истину всяким упрямым… Я за С с асм вставками где необходима max скорость, и поверте таких случаев настолько мало (в смысле где лучше самому написать ибо компилятор сделает на N тактов больше) что не стоит заморачиватся на чистом asme.
Цитата:
Нужно правильно использовать ресурсы МК, а не так как учит avr123,
Ну 123 это особая личность. Ему много раз говорили что он использует, мягко говоря не совсем типичный стиль на своём сайте. Видимо с таким понятием как нейролингвистика он не знаком, но бог с ним это его проблемы. А что по поводу
Цитата:
предлагает использовать в качестве флага символьную переменную.
То на этот вопрос могу ответить только из своего опыта. Я практически всегда использую целый байт, т.к. работа с ним занимает меньше кода. У современных контроллеров всегда остаётся лишнее ОЗУ, поэтому это не накладно, а с битами я работаю, когда есть группы сходных битов, и их удобно с помощью битовых масок выдирать из байта.
__________________
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртову гвоздю!
AVR-forever вне форума  
Непрочитано 25.07.2007, 01:00  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Лично я считаю, что Вы не правы в отношению к avr123. Да, его курс можно обвинить (да, собственно, и обвиняют) -в поверхностности, в чем угодно,... в подробности не лезу - хотите, закиньте в поиск - да и сам я учился программированию не по его сайту - это было во времена "Очакова и покоренья Крыма". Но ! Человек, несмотря на раздражающе навязчивую рекламу своего сайта, действительно привлек десятки, если не сотни человек к миру микроконтроллеров. Все остальное - вторично...

Противопоставьте его сайту свой... Тогда и претензии будут к месту.
urry вне форума  
Непрочитано 25.07.2007, 08:12  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от lsa
Подробный и понятный.
Вы правда считаете что:

Код:
MOV R3,#58
DJNZ R3,$        ; delay 120 us
проще и НАГЛЯДНЕЙ чем:

Код:
delay_us(120);
А Ну тады - ОЙ !
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 25.07.2007, 09:40  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Вы правда считаете что:
MOV R3,#58
DJNZ R3,$ ; delay 120 us
проще и НАГЛЯДНЕЙ чем:
delay_us(120);
А Ну тады - ОЙ !
Ну эт Вы придираетесь.
Для меня ясно, что по первой конструкции процессор будет стоять не месте и ничего не делать.
Со второй не все так просто.
Если б там было
delay_ms(120);
и еще включена собака,
то нормальный компилятор в цикл включил не просто стояние, а еще сброс сторожевого таймера.
А ненормальный не включит сброс - пройдет много времени пока эти бока выплывут и найдется причина несанционированного сброса.
lsa вне форума  
Непрочитано 25.07.2007, 09:41  
Andrewg
Прописка
 
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrewg на пути к лучшему
По умолчанию

Асемблер это букварь, в си пишешь фразами. Это образно.
В данном примере всё элементарно.
MOV R3,#58 ; (загрузить в регистр R3 десятичное значение 5
DJNZ R3,$ ; delay 120 us (декремент и если R3 не равно 0 переход на метку $, если равно выполняем код ниже.) Даже без комментариев всё понятно.

Главное конечный результат.
Если это единичный экземпляр, можно код особо не вылизывать и взять контроллер подороже. (разработка программы обойдётся дешевле). А если коммерческий продукт и предполагается выпускать большое количество, нужна надёжность и быстродействие, то здесь лучше потратить больше времени на программу и взять контроллер подешевле. И при выпуске к примеру даже 1000 шт. разница будет очевидна.
Нет такого, что что-то одно лучше, другое хуже. Для достижения результата для каждого случая требуется или ассемблер, или си, или в совокупности вместе.

Каждый пишет так как ему удобно. И каждый останется при своём мнении.
У каждого свои задачи.
Andrewg вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из Hex в ассемблер и потом в СИ 1864961 Цифровые сигнальные процессоры 12 14.02.2012 16:59
помогите переписать с bascom на ассемблер 315602 Микроконтроллеры, АЦП, память и т.д 10 09.03.2009 16:54
ассемблер и ARV (посмотрите код) FedorChek Микроконтроллеры, АЦП, память и т.д 50 26.02.2009 19:14
ассемблер или компилятор для at89c2051 cto1shch Микроконтроллеры, АЦП, память и т.д 36 26.12.2007 11:51
Ассемблер PIC AnB Микроконтроллеры, АЦП, память и т.д 12 01.07.2005 03:07


Часовой пояс GMT +4, время: 00:14.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot