AVR GCC&IAR

MP>> Кто-нибудь считает, что он смог бы такое написать? ;)

AM> кто он?

MP> Кто-то кроме тебя в здравом уме и без шпаргалки.

Это наезд? Аргументы кончились?

MP>> Как на счет поменять битики (ножки портов) ? ;) AM> #define P10 0x90 AM> #define P11 0x91 AM> #define P12 0x92 AM> #define P13 0x93

MP> Претензии только к этому куску, если я каким-то образом должен помнить MP> соответствие байта операнда бит-функции какому-либо мнемоническому обозначению MP> - чем это вообще отличается от программирования в машинных кодах?

Поясни еще раз, где здесь программирование в машинных кодах?

for (;;) { LED = BUTTON; }

MP> Следущая стадия маразма - запомнить 2 опкода переброса через C флаг и писать MP> такие конструкции через db ;)

Это стадия маразма при писании на ассемблере. На Си вообще нет доступа к флагу С, там более возможности всовывать куда-то db.

MP>> Кто-нибудь понял бы это, если бы там небыло коментариев? AM> где ты видишь комментарии?

MP> А там где 0x90 в define были - и правильно были, а то мало бы кто понял откуда MP> берется 0x90 и как оно коррелирует с p1.0

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

Я тебе привел более понятный код

Это обычно в файле типа 8x51.h #define P10 0x90 #define P11 0x91 #define P12 0x92 #define P13 0x93

Это в каком нибудь файле pins.h #define BUTTON_PORT P10 #define LED_PORT P11

А это собственно объявление пинов. sbit BUTTON = BUTTON_PORT; sbit LED = LED_PORT;

Смущает sbit ? Ну введено расширение языка в Кейл х51, чтобы можно было использовать битовые опреции. И что?

В твоем приеме эти же 2 строки выглядят как: #define LED P0.0 #define BUTTON P3.0

чем это лучше/хуже. А главное - это собственно не код программы, а объявляения переменных. К понятности собственно кода без каких либо комментарием претензии есть?

for (;;) { LED = BUTTON; }

Reply to
Andy Mozzhevilov
Loading thread data ...

MP> >> Специально умолчал для какого процессора переписывал? ;) Если для DO> Для того же самого.

MP> Для меня сама идея - бредова, что можно такого написать на асме 11-го проца, MP> что нельзя было-бы вопервых понять до последнего байта, во вторых поддерживать MP> в том виде что есть... была бы задача и оплата.

У тебя видимо в запасе есть машина времени, или какой-то замедлитель времени. Поделись, а?

DO> Эффективный код - не самоцель.

MP> Для тебя - может быть.

Да для всех. Пока релтайм соблюдается и программа влазит, бОльшая эффективность не дает никакого выигрыша.

MP> В любом случае набор процессоров доступных в одном конкретно взятом городе MP> ограничен и сильно.

:)))) Этот аргумент у меня вызвал почти истерический хохот. Спасибо, повеселил с утра.

MP> Кроме того для малых задач существуют абсолютно паралельные MP> архитектуры которые полностью заменяют друг друга, и можно выбирать то, что MP> нравится. Практически PIC и AVR например полностью взаимозаменяемые MP> архитектуры. Конечно где-то есть достоинства и недостатки, но если бы например MP> одного из этих семейств небыло - мир бы не остановился!

А если бы в твоем городе не было доступно ни одного семейства, ты бы наверное пошел в дворники ? :)

Reply to
Andy Mozzhevilov
Reply to
Dimmy Timchenko
Reply to
Alexander Torres
Reply to
Alexander Torres
Reply to
Lev Serebryakov
Reply to
Alexander Torres
Reply to
Dimmy Timchenko

MP>> Следущая стадия маразма - запомнить 2 опкода переброса через C флаг и MP>> писать такие конструкции через db ;)

AM> Это стадия маразма при писании на ассемблере. Hа Си вообще нет доступа AM> к флагу С,

AT> В стандартсном С - нету, в конкретных реализациях - вполне может быть, кк и к AT> другим флагам. AT> У меня в одном проекте на 51-м,

В х51 доступ к флагу CY получился автоматически, поскольку PSW замаплен в один и SFR адресов. Специально сделанного доступа к флагам из Си, а не в виде побочного эффекта, я не видел. Если доступ к флагам действительно нужен, то вводятся расширения языка, типа EI(), DI() и т.п. Хотя может приведешь другие примеры?

AT> идет передача RS232 с паритетом, все написано AT> на Си без ассемблерных вставок (в этом месте, вообще они в программе есть), с AT> доступом к биту паритета.

AM> там более возможности всовывать куда-то db.

AT> И это обычно есть в виде задания абсолютного адреса.

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

void main (void) { a = b;

db ....

b = c;

}

Именно это было названо маразмом, насколько я ничего не понял.

Reply to
Andy Mozzhevilov
Reply to
Maxim Polyanskiy
Reply to
Den Y. Borisov

Hi,George !

GS> Какие сказки? Для похожих систем работают два программиста, GS> один пишет на сях, второй на асме. Программы по длине отличаются GS> на порядок.

Ну так уж и на порядок. Конечно, знаменитое "Hello, world!", может, и на порядок будет больше асмовского, но чем крупнее проект, тем сишные "надстройки", отнесенные к общему об'ему кода, будут менее "весомыми".

Года этак 3-4 назад в нашей дискуссии мейлом на эту тему с DO у него я встретил фразу "Тут Шепелев прав" - жаль, думаю, он этого не прчитает :-)

Мне казалось, что эта вечная тема "C - ASM" уже закрыта, как и "PIC - AVR" - ан нет. По-моему, тут чистая экономика - если у тебя большие тиражи, и переплачивать лишние 3-5 гринов за экземпляр проца не хочется, труд программера дешев (как у нас в Белораше), а лишний месяц срока не давит, а библиотеки на асме написаны и оттестированы уже на нескольких изделиях - почему бы и не асм ? По крайней мере у меня с кодированием проблем не было - вот разобраться, что у дивайса внутри происходит не так на уровне алгоритма при отладке железа - тут надо напрягать извилины по полной, а когда просек - исправить код не вопрос что на асме, что на С. Вопрос портирования. У меня по крайней мере не встречалось случая, чтобы переносить на другой проц 1:1 - ради чего ? А вот когда идет модернизация, вводятся новые фичи - когда я переходил со ST6265 на АВР, портировать библиотеки было был самой приятной и недолгой частью работы (на АСМе) . Я не С-ненавистник, его нежно люблю :-) , все тестовые наборы и константы генерю на ем, родимом, и с удовольствием бы сварганил прожект достаточной сложности на сях, был бы компилятор. "Я так думаю !" (C) Мимино WBR Eugene Gavruk

Reply to
Eugene Gavruk

Hello, George Shepelev !

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

С уважением, Дима Орлов.

Reply to
Dima Orlov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.