Перейти к содержанию
    

Так же, через asm (asm volatile).

Пример, да ?

 

Там точно нет какой нибудь галочки, "включить оптимизацию"?

Не вижу. Все включено(с)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример, да ?
Да пожалуйста!

Преварительно скажу, что писать "lsl" в си вообще нет необходимости, это соответствует "Test_byte <<= 1;", так же нет необходимости писать и "lds", "sts" и явно указывать "r16" - загрузку, сохранение, распределение регистров компилятор осуществляет самостоятельно. Т.е.

    asm("lsl %0":"+r"(Test_byte));
    Test_byte <<= 1;

, где Test_byte - глобальная переменная, компилятор преобразует в

   asm("lsl %0":"+r"(Test_byte));
6fc:    80 91 60 00     lds    r24, 0x0060
700:    88 0f           add    r24, r24
    Test_byte <<= 1;
702:    88 0f           add    r24, r24
704:    80 93 60 00     sts    0x0060, r24

Напомню, что "lsl" - синоним "add rX, rX", в случае регистровой переменной "lds", "sts" просто не будет.

Если у Вас есть еще неясности по поводу AVR-ассемблера в gcc - рекомендую GCC-AVR Inline Assembler Cookbook

Не вижу. Все включено(с)
Ну что же, значит паскаль реально не пригоден для программирования AVR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

знаю что не по теме, но душу греет :) :) :)

 

V:

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

Мой тяжкий крест — вас всех немерлу обучать.
Я вас заставлю мои макросы понять.
Слоненок розовый с проклятьем на челе,
Я никогда не отступлюсь от немерле.

И после смерти вам не обрести покой.
И в ад и в рай поскачет с вами образ мой.

N:

Рай, обещают рай мне замыканья,
Дай мне надежду, о мое призванье,
Знай: утиных типов не страшна слепая власть,
Безумец, прежде я не знал, что значит страсть.

Теперь сишарпом словно бесом одержим,
Этюды дерзкие мою сгубили жизнь.
Жаль, в MS работать был я просто обречен,
Теперь вот в рясу от сишарпа облачен.

И после смерти, мне не обрести покой:
Сперва аппостол пусть решит "этюдик" мой.

E:

D. Светлых плюсов сон от цифромарса,
D. Грешных плюсов стон от цифромарса.
И? — Отбился с рук и покатился камнем вниз.
Разбились грезы ожиданий D release.

SObjectizer, ты не в силах тут помочь.
Сплошную бету не дано D превозмочь.
Стой! Не покидай меня нативная среда!
Рабом дотнета я не стану никогда!

И после смерти мне не обрести покой,
Я хоть в раю узнаю день релиза твой?

V, N и E, хором:

И днем и ночью только код передо мной.
Нативный, сложный, управляемый, простой...
Стой! Не покидай меня безумная мечта!
Найти бы пулю из святого серебра...

И после смерти, мне не обрести покой.
Я душу дъяволу продам за код простой.

За код простой...

 

автор kochetkov.vladimir

http://www.rsdn.ru/Forum/message/3215532.aspx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

C детства программирую на паскале. А для PC - только на паскале.

И вот пришлось освоить Си.

И что интересно. Двоеточие после равно я ставить отучился, а ставить двойное равно - нет.

 

И еще количество круглых скобок в Си напрягает. Просто безумие какое-то. Либо постоянно иметь ввиду очень странное старшинство операций. Либо скобки изо всех сил ставить.

if (B==A&3) чисто понятно чего я хочу, а работать не будет.

В итоге if (B==(A&3)) ... Уж лучше бегин энд, чем лазить с шифтом наверх клавы постоянно.

 

Кстати, самые ярые сишники в нашей конторе, когда требуется быстро что-то сделать - врубают дельфи без стеснения. И на едкие замечания - не реагируют.

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Двоеточие после равно я ставить отучился, а ставить двойное равно - нет.
Если постоянно путаете = и ==, заведите привычку писать не i == 0, а 0 == i - тогда будет ошибка при просто =.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что интересно. Двоеточие после равно я ставить отучился, а ставить двойное равно - нет.

 

И еще количество круглых скобок в Си напрягает. Просто безумие какое-то. Либо постоянно иметь ввиду очень странное старшинство операций. Либо скобки изо всех сил ставить.

if (B==A&3) чисто понятно чего я хочу, а работать не будет.

В итоге if (B==(A&3)) ... Уж лучше бегин энд, чем лазить с шифтом наверх клавы постоянно.

:) Детские болезни.

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

Взрослейте и будем счастье!

 

Кстати, самые ярые сишники в нашей конторе, когда требуется быстро что-то сделать - врубают дельфи без стеснения. И на едкие замечания - не реагируют.

Ага. Это правда. И я видел как один художник рисовывал картину на стене (своего) гаража. А когда приперло быстро подготовить еще одну стену, он тупо взял валик и ведро грунтовки. Не едкие замечания не реагировал. Собака!

 

Скобки -- это гарантия, что все пойдет так, как вы хотите. Понимаю Вас. Сам через это проходил. Операторов много, приоритеты запоминаются сложно. Скобки рулят. И даже когда читаешь листинги с других языков, а там приоритеты операций не обязятельно такие же, как в С. Скобки опять рулят. Маленький совет, когда Вы пишите какое-то сложное выражение, сначала пишите пары скобок, а потом детализируйте -- заполняйте их.

 

Какие проблемы? А может просто "Вы их не умеете готовить?" (С)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что интересно. Двоеточие после равно я ставить отучился, а ставить двойное равно - нет.

Ну и только честно, нафига было в Паскале делать =: для присвоения :(, как наиболее частой и к тому же естественной "привычной с детства" арифметической операции а зато односимвольную и более редкую = валить в одну кучу со всякими <>. Ответ такой-же, как и данный ниже - для рекламных целей - за 15 обзорки рисовалась на доске некая хрень в которой НИЧЕГО не вычислялось, зато псевдоанглийский if else then end пару названий переменных цифр и if A = B присутствовали, ибо рассказывали не как вычислять - калькулятором не удивишь. При таком галопе объяснения разницы между = и =: было лишним :(.

И еще количество круглых скобок в Си напрягает. Просто безумие какое-то. Либо постоянно иметь ввиду очень странное старшинство операций. Либо скобки изо всех сил ставить.

Большинство массовых приоритетов покрываются "естественными". А кроме того, наличие большого количества мнгоуровневых приоритетов по сравнению с ОТСУТСТВИЕМ может ухуждшить ну разве только чтение лицом их незнающим, но никак не НАПИСАНИЕ - количестово скобок, как привычно, а отнюдь не "изо всех сил ставить".

Кстати, самые ярые сишники в нашей конторе, когда требуется быстро что-то сделать - врубают дельфи без стеснения.

Абсолютно не верю, при наличии аналогичной мути для изготовления уродцев - Builder, да и MVC вполне бездумно и быстро слепить позволяет....

Уж лучше бегин энд

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... да и VS вполне бездумно и быстро слепить позволяет....

При все уважении, не могу согласится.

 

Как минимум у меня это в VS легко и быстро не получается.

Все зависит от "тяжести" создаваемой проги.

 

Не, я конечно тоже могу за полддня слепить что-то типа AVR-килькулятора или за 5 минут "Драствуймир" или за полчаса решение квадратного уравнения с прибамбасами. Но когда дело касается како-то мощной системы (например, како-нибудь навороченный анализатор входных сигналов, получаемых с объекта через USB или TCP/IP), то сначала обдумывается архитектура, обдумываются классы/объекты; кто с кем и как будет взаимодействовать, кто на кого будет влиять; какие будут результаты, куда и как их будем писать; что будет делать прога в тех или иных случаях, что будет видеть юзер, в какие моменты подновлять фэйс проги, сколько потоков и когда создавать и т.д. и т.п.

 

Т.е при всем желании, если ничего этого в голове нет, писать код толку мало -- VS все равно не даст продвинутся дальше интефейса. Зато когда это все в голове устаканится, код пишется легко и быстро. Непринужденно.

 

Помятуя свой прошлый опыт Делфей (и аналогично -- Вижуал-Васика), утверждаю, что в этих средах/языках существует очень большой соблазн начать проект сразу, с горяча. С того, что на форму накидываются компонеты и затем их не задумываясь соединяют. Простые проги так можно создавать. У больших проектов при таком безбашенном подходе после какого-то времени разработки/развития начинают вылезать сначала мелкие нестыковочки, потом больше и больше, и т.д. по экспоненте. Потом начинаешь понимать, что основная масса времени идет не на создание продукта, а борьбу с окучиванием компонет, которых поначалу накидал не думая, соблазнившись RIDical perfomance © Borland.

 

Т.е. что я хочу сказать. Я хочу сказать, если предстоит построить быстро небольшой проектик (само собой -- некоммерческий!), можно взять то, что позволяет быстро сделать тяп-ляп и как-получится, не взирая ни на объемы ехе-шника, ни на скорость исполнения, ни на возможные падения ("Программа совершила недопустимую операцию и будет..."). Но если стоит задача получить на рынке денег за продукт, и не опарофиниться перед клиентом после поставки, то Делфийская Рэпид-технология отдыхает на Канарах.

 

Вот смотрите: общее время создания готового продукта, начаная от возникновения идеи создать продукт, состоит из обдумывания архитектуры решения, из практического создания (написания кода, расстановки компонент на форме) и отладки.

 

Обдумывание архитектуры и отладка занимают на порядок больше времени, чем расстановка компонет на форме и их логическое связывание. Когда знаешь что делать, текст проги набрать не долго. Если уж так надо экономить время то, наверно это делать надо не тех операциях, которые и так не имеют большого веса (времени). Конечно, если "программист" испытывает проблемы при наборе текста программы... , не знает клавиатуру... то, да-а. Тут можно и нужно использовать Рэпид-инструменты. Как правило, такие "программисты" и не создают сложных программ.

 

Пластилиновый софт создается быстро. Но ... пластилин, он и есть пластилин!

 

PS

Только что пришло письмо с books.ru.

 

Никогда не задумывался на тему, что "свои" книжки я покупаю так дорого:

* Макконнелл "Совершенный код" -- 803 рубля

* Руссинович, Соломон "Внутреннее устройство Венды" -- примерно 1000 (мне достался бесплатно, из "Боекомплекта разработчика")

* Рихтер "Windows via C/C++" -- 1245 рублей,

* Бовет "Ядро Linux" -- 680 рябчиков,

ну и т.д. У многих они есть. Не в этом дело.

 

Я сходил по предложенной в письме ссылке. И там мне предлагают тако-ое..., ну тако-ое... =8-0

http://www.books.ru/shop/books/717

Это ж как надо было опустить продукт! Что если еще чуть дешевле, то уже только даром!

 

Дайте две!

Изменено пользователем zhevak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что на форму накидываются компонеты и затем их не задумываясь соединяют.
хм, получается что в VS мозги работают, а в Delphi - отключаются ?

как раз возможность набросать за полчаса 10 вариантов GUI и выбрать подходящий - очень болшой +.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и только честно, нафига было в Паскале делать =: для присвоения :(, как наиболее частой и к тому же естественной "привычной с детства" арифметической операции а зато односимвольную и более редкую = валить в одну кучу со всякими <>.

Ну не знаю, знак присвоения := мне казался абсолютно логичным (кстати, именно так, а не =: )

Более того, на этапе ассемлера 8080 этот же знак использовался в блок-схемах алгоритмов.

Наверняка из какого-то старинного идет.

А != ну явный бред! Я до сих пор чаще использую !( a==B ). И то более логично получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хм, получается что в VS мозги работают, а в Delphi - отключаются ?

как раз возможность набросать за полчаса 10 вариантов GUI и выбрать подходящий - очень болшой +.

Конечно плюс. А разве это всегда самое главное?

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потом начинаешь понимать, что основная масса времени идет не на создание продукта, а борьбу с окучиванием компонет

Ух, я когда-то еще с Turbo Vision... В общем объект TEditor, для неокрепших умов - куча кода, хз как работает. Что-то более-менее добавить из функционала - невозможно. Проще с нуля переписать самостоятельно. При попытке красивого расширения наталкиваешься на специально заложенные грабельки, для "сдерживания роста юзера" - это не просто числа вместо констант, или какие-то упрощения, шитые белыми нитками - это нерасширяемая и глубоко продуманная концепция. Поэтому или прогер учится создавать свои компоненты, или борется с абстиненцией при недостатке борландячих - существенно расширить их не удастся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

:biggrin:

Суровые парни вообще не заморачиваются интерфейсом. Все идет через командную строку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я до сих пор чаще использую !( a==B ).
Ужасно!!!

Как же у людей мозги "испорчены" этим паскалем!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну не знаю, знак присвоения := мне казался абсолютно логичным (кстати, именно так, а не =: )

Более того, на этапе ассемлера 8080 этот же знак использовался в блок-схемах алгоритмов.

Наверняка из какого-то старинного идет.

А != ну явный бред! Я до сих пор чаще использую !( a==B ). И то более логично получается.

Вы знаете, у меня все тоже самое, но с точностью до наоборот!

Прывычка -- очень серьезное дело.

 

Вспомните детство. Лицо Ваше матери казалось Вам красивым и абсолютно правильным. И в тоже время лица чужих теток Вам были неприятны. Просто у Вас была матерью именно эта женщина, а не какая-то другая. Так и с языками, мы привыкли считать правильным только то, на чем удалось добиться наибольших успехов.

 

Я легко выцепляю в "овсянке" кодов комбинации символов !=, ->, ::, { }, null. И меня также цепляют заусенки типа BEGIN-END-FUNCTION-PROCEDURE, :=, NOT, nill. Но это ничего не значит.

 

Кому-то без разницы -- как классифицируется блок кода, а кто-то заостряетсвое внимание и говорит, что это есть очень большая, т.е. _принципиальная_ разница: процедура это или функция. На столько большая, что это надо особо выделять. И выделяют. И ничего, живут.

 

Это не бред. Это -- религия!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...