Управление портом в АВР

Очнись! Переменные объявляются в начале любого блока! В "C" без крестов.

Без void'а начинается сарай из классов...

Они на самом деле -- указатели...

Опять, опять! Я уже писал, нет сил повторяться. Заставь дурака богу молиться -- непременно расшибёт лоб. Перегрузка функций в C++ -- костыль вызванный отсутствием динамической типизации. Hазываеть её достоинством языка... В "C" вон void работает для того...

Единственная полезная фича из перечисленного, а последнее есть и в "C" (ну да, с "расширениями"). Ещё бы enum назвал, его реализация в "C" просто бессмысленная.

Reply to
Kirill Frolov
Loading thread data ...

Если компилятор под платформу GCC -- всё это есть. И даже больше.

Reply to
Kirill Frolov

ВОТ. Внести в местный FAQ и тыкать туда при слове ассемблер.

К "C" есть альтернативные макропроцессоры с рекурсиями и т.п. С номерами строк там по крайней мере всё в порядке. Да и во вменяемом ассемблере связанном с компилятором -- тоже (ибо он с сишным препроцессором умеет работать). Собственно никто не мешает применять и к ассемблеру в итоге. Hазвание вот сейчас не вспомню, но есть замены для cpp. Другое дело, что малоактуально.

Reply to
Kirill Frolov

Hello Kirill.

Fri Feb 22 2008 10:33, Kirill Frolov wrote to me:

KF> Они на самом деле -- указатели...

Hикого не интересует, что там "на самом деле". В любом языке передача параметра по ссылке делается через указатели. Важно, чтобы этих указателей "в голом виде" поменьше было.

KF> Опять, опять! Я уже писал, нет сил повторяться. Заставь дурака богу KF> молиться -- непременно расшибёт лоб.

Это ты про авторов C/C++? :) Видимо, ты прав. Hо мы можем выбирать только из тех инструментов, которые есть в наличии. И по сути это - C/EC++ и ассемблер. Для любителей экзотики - ещё форт. :)

А вообще - не многовато ли эмоций?

Dimmy.

Reply to
Dimmy Timchenko

Пользуйся avrstudio и не насилуй ни себе ни другим мозг. Всё мной тут сказанное не для тебя. Кто надо понял, кто не надо -- я уже писал, как поступать и почему.

Reply to
Kirill Frolov

Hello, Kirill! You wrote to Andrej Arnold on Thu, 21 Feb 2008 09:41:22 +0500:

??>> C:\WinAVR\IMS_25\testasm\C:\Programme\Atmel\AVR ??>> Tools\AvrAssembler\Appnotes/can128def.inc(40) : Error : Unknown ??>> device: AT90CAN128 Warning : No .DEVICE definition found. Cannot make ??>> useful address range check ! KF> Инклюдники можно самому написать. Hадо же, какая мудрая мысль;) тебя со временем осенила... Hу напиши... во имя спасения твоего протеже... А написанные другими can128def.inc чем тебе не подходят?

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Reply to
Andrej Arnold

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 22 Feb

2008 07:23:17 +0000 (UTC):

KF>>> А какой аврасм поддерживает рекурсивные макросы? А как вообще KF>>> писать-то в ассемблере без макросов?

KF> Занахрена если есть ассемблер с макропроцессором. Впринципе KF> работающий, при применении рук.

Если работающий, и макропроцессор устраивает, то не нужно.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 22 Feb

2008 07:33:33 +0000 (UTC):

AV>>> ЕМHИМС, многое из этого (разве что кроме перегрузки и аргументов AV>>> по умолчанию) AV>>> есть в C99... Впрочем, могу ошибаться, ибо уже давно пользую AV>>> только гнусь.

KF> Если компилятор под платформу GCC -- всё это есть. И даже больше.

Если он вообще есть, если его реализация устраивает, если по историческим причинам не используется что-то другое...

dima

formatting link

Reply to
Dmitry Orlov

Привет, Kirill !

22 Feb 08 , 10:27 Kirill Frolov писал к Nickita A Startcev:

KF> В "C" нет рекурсивных макросов.

в Цэ много чего хорошего нет.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... апофеоз и гипофеоз

Reply to
Nickita A Startcev

Привет, Kirill !

22 Feb 08 , 10:33 Kirill Frolov писал к Dimmy Timchenko:

KF> Очнись! Переменные объявляются в начале любого блока! В "C" без KF> крестов.

for(int i=0;i<size;i++){} это блок или нет? { for(int i=0;i<size;i++){} } - это уже изврат..

KF> Без void'а начинается сарай из классов...

foo=bar - и никакой ругани на потерю информации. Оччень удобно.

KF> Опять, опять! Я уже писал, нет сил повторяться. Заставь дурака богу KF> молиться -- непременно расшибёт лоб. Перегрузка функций в C++ -- KF> костыль вызванный отсутствием динамической типизации. Hазываеть её KF> достоинством языка... В "C" вон void работает для того...

my_print(char) my_print(char*) my_print(int*) это удобно. Удобнее чем my_print_char, my_print_char_ptr, my_print_int

KF> Единственная полезная фича из перечисленного, а последнее есть KF> и в "C" (ну да, с "расширениями"). Ещё бы enum назвал, его реализация KF> в "C" просто бессмысленная.

а еще with не хватает. :)

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Постепенно батарея и ужасно логорея он что-то куда-то вокзал

Reply to
Nickita A Startcev

Hello Nickita.

Fri Feb 22 2008 19:51, Nickita A Startcev wrote to Kirill Frolov:

NAS> а еще with не хватает. :)

О! Именно. :)

Dimmy.

Reply to
Dimmy Timchenko

Доброго времени суток, Nickita!

22.02.2008 10:01, Nickita A Startcev -> Alexey Vissarionov:

DT>>>>>> "многоплатформенный" ассемблер с правильным синтаксисом. NS>>>>> "язык Си" именно на это и претендует. AV>>>> И, надо заметить, весьма неплохо справляется NS>>> в первом приближении - да. во втором - многовато стандартов разных AV>> Из актуальных - всего два: ISO C90 и ISO C99. Есть, конечно, GNU AV>> extensions и аналогичная хрень, но я ей практически не пользуюсь. NS> еще есть приятные неклассовые плюсявые 'расширения', типа более NS> строгой проверки типов и объявления переменных где угодно.

Появилось в гнуси, оттуда попало в C99.

AV>> Опять же, реализации чего? Компилятора? Да, задача нетривиальная... NS> читал статью (урл не помню) про самостоятельное написание компилятора NS> си каким-то институтом-коллективом.

Это сейчас в качестве курсовых работ задают...

NS> Там упоминалось много необычных изподвыподвертов, например в NS> арифметике с указателями. Чуть ли не 'a = b + 5[]', которые NS> компилятор должен переваривать корректно.

Для справки: выдача сообщения об ошибке является корректной обработкой (в отличие, соответственно, от генерации непотребного кода) - то есть, на приведенный тобой пример компилятор может выругаться "не могу выполнить приведение типов", и это будет правильно.

AV>> впрочем, никто не мешает использовать гнусь :-) NS> А она бывает под 16 или 8 бит? :)

Самое эхотажное, подо что мне доводилось собирать сишный код - это ARM.

Кстати, в свое время я видел довольно забавный язык, именуемый C-- ("си минус минус"): синтаксис сишный, а вместо стандартных библиотек используется набор inline-макросов для прямой работы с регистрами, портами итд. Думаю, при большом желании его вполне можно довести до ума и использовать в эхотажных целях.

Reply to
Alexey Vissarionov

Привет, Alexey !

22 Feb 08 , 22:38 Alexey Vissarionov писал к Nickita A Startcev:

AV>>> Опять же, реализации чего? Компилятора? Да, задача AV>>> нетривиальная... NS>> читал статью (урл не помню) про самостоятельное написание NS>> компилятора си каким-то институтом-коллективом.

AV> Это сейчас в качестве курсовых работ задают...

с учетом всех приколов типа описанных в

formatting link
?

NS>> Там упоминалось много необычных изподвыподвертов, например в NS>> арифметике с указателями. Чуть ли не 'a = b + 5[]', которые NS>> компилятор должен переваривать корректно.

AV> Для справки: выдача сообщения об ошибке является корректной обработкой AV> (в отличие, соответственно, от генерации непотребного кода) - то есть, AV> на приведенный тобой пример компилятор может выругаться "не могу AV> выполнить приведение типов", и это будет правильно.

зевнул. другие примеры: return ((int []){1,2,3,4})[1]; return ({goto L; 0;}) && ({L: 5;});

AV>>> впрочем, никто не мешает использовать гнусь :-) NS>> А она бывает под 16 или 8 бит? :)

AV> Самое эхотажное, подо что мне доводилось собирать сишный код - это AV> ARM.

32бит. :)

AV> Кстати, в свое время я видел довольно забавный язык, именуемый C-- AV> ("си минус минус"): синтаксис сишный, а вместо стандартных библиотек AV> используется набор inline-макросов для прямой работы с регистрами, AV> портами итд. Думаю, при большом желании его вполне можно довести до AV> ума и использовать в эхотажных целях.

Ага. Видел. Hа мой взгляд он неплох на роль промежуточного языка при компиляции.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... новое телешоу "DOM II", Hell on the earth NOW!

Reply to
Nickita A Startcev

function(var). Где в зависимомсти от типа var function выполняет совершенно *РАЗHЫЕ* побочные действия (ну кроме возврата разультата типа void)... Это HОРМАЛЬHО? Hет, это нифига не нормально. Пример же приводился, вроде тут (в этий эхе).

printf. Согласен костыль. Для C.

Да. Хотя настоящие программисты используют фортран.

Reply to
Kirill Frolov

Это для тех, кто ниасилил принцип работы указателей?

Hет. Я про любителей перегруженных функций. В Python они не нужны, например.

Давайте подерёмся!

Reply to
Kirill Frolov

Таки в скобках что-то должно быть и практически все компиляторы на 5 хоть варнинг да выдадут.

Под 16 бывает (dspic). Под 8 -- нет. Хотя патч для z80 (неработающий вроде как, не пробовал) -- реальность.

Reply to
Kirill Frolov

Он заточен исключительно под 386. Бредовая абсолютно идея. По сути макроассемблер с нестандартным синтаксисом.

Лучше б PL/M вспомнил. Для того и создавалось.

Reply to
Kirill Frolov

Дык эта, C-to-C translator! Эху читать надо внимательно (не такое уж и бесполезное занятие оказывается временамим) -- только что ссылка пролетала:

formatting link
Дописать пару правил в ненавистный Makefile несложно для чего, а как быть со "средами" не знаю -- все вопросы к Биллу Гейтсу!

Reply to
Kirill Frolov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 24 Feb

2008 05:14:58 +0000 (UTC):

AV>>> Дык я про то и говорю: гнусь не только поддерживает стандарт, но и AV>>> расширяет оный, позволяя использовать более удобные языковые AV>>> конструкции.

KF> Дык эта, C-to-C translator! Эху читать надо внимательно (не такое

А ты внимательно прочитал то, на что отвечаешь? В частности, про расширения и ограничения? Этот c2c транслятор поймет синтаксис определения прерываний, битовых переменных, неинициализированных переменных и т. п., чего нет ни в ANSI ни в GCC, но без чего работать с контроллером нельзя или не эффективно?

KF> уж и бесполезное занятие оказывается временамим) -- только что KF> ссылка пролетала:

formatting link
KF> Дописать пару правил в ненавистный Makefile несложно для чего, а KF> как быть со "средами" не знаю -- все вопросы к Биллу Гейтсу!

То есть про source level debugging можно забыть...

dima

formatting link

Reply to
Dmitry Orlov

Hello Kirill Frolov!

И каким бокoм PL-машина лучше, положим, Forth-машины ?

PS Я ещё помню PL-I на ЕС ЭВМ (в ПДО): "ошибка в фазе транслятора KG" ЖB}}}

Reply to
Alexander Konosevich

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.