|
|
  |
Pascal для AVR |
|
|
|
Dec 15 2008, 21:41
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(733259 @ Dec 15 2008, 04:34)  Так же, через asm (asm volatile). Пример, да ? Цитата(733259 @ Dec 15 2008, 04:34)  Там точно нет какой нибудь галочки, "включить оптимизацию"? Не вижу. Все включено(с)
|
|
|
|
|
Dec 16 2008, 04:17
|
Местный
  
Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146

|
Цитата Пример, да ? Да пожалуйста! Преварительно скажу, что писать "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.
|
|
|
|
|
Dec 16 2008, 04:46
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
знаю что не по теме, но душу греет  Код V:
Свет озарил во тьме мой длинный хобот, Нет, путь к немерлу был совсем недолог. Бред, считать сишарп пригодным для больших программ. Я делегаты буду долго помнить вам.
Мой тяжкий крест — вас всех немерлу обучать. Я вас заставлю мои макросы понять. Слоненок розовый с проклятьем на челе, Я никогда не отступлюсь от немерле.
И после смерти вам не обрести покой. И в ад и в рай поскачет с вами образ мой.
N:
Рай, обещают рай мне замыканья, Дай мне надежду, о мое призванье, Знай: утиных типов не страшна слепая власть, Безумец, прежде я не знал, что значит страсть.
Теперь сишарпом словно бесом одержим, Этюды дерзкие мою сгубили жизнь. Жаль, в MS работать был я просто обречен, Теперь вот в рясу от сишарпа облачен.
И после смерти, мне не обрести покой: Сперва аппостол пусть решит "этюдик" мой.
E:
D. Светлых плюсов сон от цифромарса, D. Грешных плюсов стон от цифромарса. И? — Отбился с рук и покатился камнем вниз. Разбились грезы ожиданий D release.
SObjectizer, ты не в силах тут помочь. Сплошную бету не дано D превозмочь. Стой! Не покидай меня нативная среда! Рабом дотнета я не стану никогда!
И после смерти мне не обрести покой, Я хоть в раю узнаю день релиза твой?
V, N и E, хором:
И днем и ночью только код передо мной. Нативный, сложный, управляемый, простой... Стой! Не покидай меня безумная мечта! Найти бы пулю из святого серебра...
И после смерти, мне не обрести покой. Я душу дъяволу продам за код простой.
За код простой... автор kochetkov.vladimir http://www.rsdn.ru/Forum/message/3215532.aspx
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 16 2008, 06:09
|
Местный
  
Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146

|
Цитата Двоеточие после равно я ставить отучился, а ставить двойное равно - нет. Если постоянно путаете = и ==, заведите привычку писать не i == 0, а 0 == i - тогда будет ошибка при просто =.
|
|
|
|
|
Dec 16 2008, 06:52
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(DpInRock @ Dec 16 2008, 10:51)  И что интересно. Двоеточие после равно я ставить отучился, а ставить двойное равно - нет.
И еще количество круглых скобок в Си напрягает. Просто безумие какое-то. Либо постоянно иметь ввиду очень странное старшинство операций. Либо скобки изо всех сил ставить. if (B==A&3) чисто понятно чего я хочу, а работать не будет. В итоге if (B==(A&3)) ... Уж лучше бегин энд, чем лазить с шифтом наверх клавы постоянно.  Детские болезни. Не стоить так беспокоиться, с возрастом обычно они у многих проходят. Не у всех, правда. Не все люди одинаковые. Многие так и остаются в розовом детстве. Взрослейте и будем счастье! Цитата Кстати, самые ярые сишники в нашей конторе, когда требуется быстро что-то сделать - врубают дельфи без стеснения. И на едкие замечания - не реагируют. Ага. Это правда. И я видел как один художник рисовывал картину на стене (своего) гаража. А когда приперло быстро подготовить еще одну стену, он тупо взял валик и ведро грунтовки. Не едкие замечания не реагировал. Собака! Скобки -- это гарантия, что все пойдет так, как вы хотите. Понимаю Вас. Сам через это проходил. Операторов много, приоритеты запоминаются сложно. Скобки рулят. И даже когда читаешь листинги с других языков, а там приоритеты операций не обязятельно такие же, как в С. Скобки опять рулят. Маленький совет, когда Вы пишите какое-то сложное выражение, сначала пишите пары скобок, а потом детализируйте -- заполняйте их. Какие проблемы? А может просто "Вы их не умеете готовить?" (С)
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 16 2008, 07:47
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(DpInRock @ Dec 16 2008, 08:51)  И что интересно. Двоеточие после равно я ставить отучился, а ставить двойное равно - нет. Ну и только честно, нафига было в Паскале делать =: для присвоения  , как наиболее частой и к тому же естественной "привычной с детства" арифметической операции а зато односимвольную и более редкую = валить в одну кучу со всякими <>. Ответ такой-же, как и данный ниже - для рекламных целей - за 15 обзорки рисовалась на доске некая хрень в которой НИЧЕГО не вычислялось, зато псевдоанглийский if else then end пару названий переменных цифр и if A = B присутствовали, ибо рассказывали не как вычислять - калькулятором не удивишь. При таком галопе объяснения разницы между = и =: было лишним  . Цитата И еще количество круглых скобок в Си напрягает. Просто безумие какое-то. Либо постоянно иметь ввиду очень странное старшинство операций. Либо скобки изо всех сил ставить. Большинство массовых приоритетов покрываются "естественными". А кроме того, наличие большого количества мнгоуровневых приоритетов по сравнению с ОТСУТСТВИЕМ может ухуждшить ну разве только чтение лицом их незнающим, но никак не НАПИСАНИЕ - количестово скобок, как привычно, а отнюдь не "изо всех сил ставить". Цитата Кстати, самые ярые сишники в нашей конторе, когда требуется быстро что-то сделать - врубают дельфи без стеснения. Абсолютно не верю, при наличии аналогичной мути для изготовления уродцев - Builder, да и MVC вполне бездумно и быстро слепить позволяет.... Цитата Уж лучше бегин энд Увы, это хоть и избитый повод для разговоров, но эти два слова полный бред созданный исключительно из-за вешания лапши на уши - смотрите это на английском написано! Какой прелесный "понятный" язык! В общем для 15 минутной лекции перед "домохозяйками" (к коим в 60x относились почти все  ) очень хороший ход. Для удобства компилятора - явные длинные ключевые слова. Но никак не для удобства реальных людей, ибо всякие скобки во всех применениях служили и служат человечеству ровно для той-же цели - выделения некоего блока.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 16 2008, 08:51
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(zltigo @ Dec 16 2008, 12:47)  ... да и 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 - Dec 16 2008, 09:22
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 16 2008, 09:11
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата что на форму накидываются компонеты и затем их не задумываясь соединяют. хм, получается что в VS мозги работают, а в Delphi - отключаются ? как раз возможность набросать за полчаса 10 вариантов GUI и выбрать подходящий - очень болшой +.
|
|
|
|
|
Dec 16 2008, 09:39
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(zltigo @ Dec 16 2008, 11:47)  Ну и только честно, нафига было в Паскале делать =: для присвоения  , как наиболее частой и к тому же естественной "привычной с детства" арифметической операции а зато односимвольную и более редкую = валить в одну кучу со всякими <>. Ну не знаю, знак присвоения := мне казался абсолютно логичным (кстати, именно так, а не =: ) Более того, на этапе ассемлера 8080 этот же знак использовался в блок-схемах алгоритмов. Наверняка из какого-то старинного идет. А != ну явный бред! Я до сих пор чаще использую !( a==B ). И то более логично получается.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Dec 16 2008, 09:47
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(ukpyr @ Dec 16 2008, 14:11)  хм, получается что в VS мозги работают, а в Delphi - отключаются ? как раз возможность набросать за полчаса 10 вариантов GUI и выбрать подходящий - очень болшой +. Конечно плюс. А разве это всегда самое главное? На сколько я понимаю, все зависит от назначения программы. Если прога предназначена чисто для работы (для зарабтывания денег), то всякие лишние пикалки-пукалки и фантики-бантики тут только вредят. Окно проги должно быть предельно аскетично, Элементы, к которым осуществляется нечастый и не оперативнгый доступ не должны торчать на ворме. И наоборот, если прога связана со сферой развлечения, то наоборот, излишняя функциональность и навороченность внутренней логики будет отпугивать потенциальных юзеров. И есть еще один аспект. Очень часто приходится видеть, когда функциональность проги и значимость цели, для которой эта прога пишется, не очень, разработчик, если не лентяй, перекладывает все внимание ее интерфейсу. Навешивает розовые бантики, лепит звуки и анимацию.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 16 2008, 10:05
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(zhevak @ Dec 16 2008, 12:51)  Потом начинаешь понимать, что основная масса времени идет не на создание продукта, а борьбу с окучиванием компонет Ух, я когда-то еще с Turbo Vision... В общем объект TEditor, для неокрепших умов - куча кода, хз как работает. Что-то более-менее добавить из функционала - невозможно. Проще с нуля переписать самостоятельно. При попытке красивого расширения наталкиваешься на специально заложенные грабельки, для "сдерживания роста юзера" - это не просто числа вместо констант, или какие-то упрощения, шитые белыми нитками - это нерасширяемая и глубоко продуманная концепция. Поэтому или прогер учится создавать свои компоненты, или борется с абстиненцией при недостатке борландячих - существенно расширить их не удастся.
|
|
|
|
|
Dec 16 2008, 10:08
|
Местный
  
Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146

|
Цитата Я до сих пор чаще использую !( a==B ). Ужасно!!! Как же у людей мозги "испорчены" этим паскалем!
|
|
|
|
|
Dec 16 2008, 10:19
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(Dog Pawlowa @ Dec 16 2008, 14:39)  Ну не знаю, знак присвоения := мне казался абсолютно логичным (кстати, именно так, а не =: ) Более того, на этапе ассемлера 8080 этот же знак использовался в блок-схемах алгоритмов. Наверняка из какого-то старинного идет. А != ну явный бред! Я до сих пор чаще использую !( a==B ). И то более логично получается. Вы знаете, у меня все тоже самое, но с точностью до наоборот! Прывычка -- очень серьезное дело. Вспомните детство. Лицо Ваше матери казалось Вам красивым и абсолютно правильным. И в тоже время лица чужих теток Вам были неприятны. Просто у Вас была матерью именно эта женщина, а не какая-то другая. Так и с языками, мы привыкли считать правильным только то, на чем удалось добиться наибольших успехов. Я легко выцепляю в "овсянке" кодов комбинации символов !=, ->, ::, { }, null. И меня также цепляют заусенки типа BEGIN-END-FUNCTION-PROCEDURE, :=, NOT, nill. Но это ничего не значит. Кому-то без разницы -- как классифицируется блок кода, а кто-то заостряетсвое внимание и говорит, что это есть очень большая, т.е. _принципиальная_ разница: процедура это или функция. На столько большая, что это надо особо выделять. И выделяют. И ничего, живут. Это не бред. Это -- религия!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|