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

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

2008 13:52:17 +0300:

AK> Hello Kirill Frolov!

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

PL/M никакого отношения ни к какой PL машине не имел, это был фактически структурный ассемблер для 8080 и 8051 с паскаль-подобным синтаксисом. Forth на этих архитектурах (как впрочем и на большинстве других) проигрывает даже такому решению по всем статьям.

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

Да мало ли что ты там помнишь, если к обсуждаемому оно никаким боком не относится?

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...

Hello, Nickita! You wrote to Alexey Vissarionov on Sat, 23 Feb 2008 01:46:54 +0300:

NA> зевнул. NA> другие примеры:

NA> return ((int []){1,2,3,4})[1];

test.c test.c(3) : error C2059: syntax error : '{'

NA> return ({goto L; 0;}) && ({L: 5;});

test.c test.c(3) : error C2059: syntax error : '{' test.c(3) : error C2059: syntax error : ')' test.c(3) : error C2059: syntax error : '&&' test.c(3) : error C2059: syntax error : ')' test.c(4) : error C2059: syntax error : '}'

Откуда такая чушь? Какому стандарту она соответствует?

WBR, AVB

Reply to
Alexey V Bugrov

Привет, Kirill !

24 Feb 08 , 08:03 Kirill Frolov писал к Nickita A Startcev:

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

Да. Должно быть, например, 5[c]

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

Reply to
Nickita A Startcev

Привет, Alexey !

24 Feb 08 , 21:15 Alexey V Bugrov писал к Nickita A Startcev:

NA>> зевнул. NA>> другие примеры:

NA>> return ((int []){1,2,3,4})[1];

AVB> test.c AVB> test.c(3) : error C2059: syntax error : '{'

Чем чобирал?

AVB> Откуда такая чушь? Какому стандарту она соответствует?

=== a.c === int test1() { return ((int []){1,2,3,4})[1]; }

int test2() { return ({goto L; 0;}) && ({L: 5;}); }

int test3() { static int c[10]={0,1,2,3,4,5,6,7,8,9,}; return 5[c]; }

======

C:\temp>gcc -v Reading specs from m:/bin/../lib/gcc-lib/mingw32/3.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as

--host=mingw32 -- target=mingw32 --prefix=/mingw --enable-threads --disable-nls

--enable-languages=f77,c++,o bjc,ada --disable-win32-registry --disable-shared Thread model: win32 gcc version 3.2 (mingw special 20020817-1)

gcc -c a.c - собирает gcc -c -W -Wall a.c - собирает gcc -std=c99 -W -Wall -c a.c собирает gcc -std=c89 -W -Wall -c a.c собирает.

Какие еще стандарты вы помните?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... "Так он не только голубой, но и доверенный" подумал Бао.

Reply to
Nickita A Startcev

Hello Alexey.

Fri Feb 22 2008 22:38, Alexey Vissarionov wrote to Nickita A Startcev:

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

Хм, я и под AVR, и под x51 на C пишу. И под 16-битный MSP430. Очень, кстати, архитектура у него правильная. Сишный код компилируется просто идеально. :)

AV> Кстати, в свое время я видел довольно забавный язык, именуемый C-- AV> ("си минус минус")

Да, помню такой. :)

Dimmy.

Reply to
Dimmy Timchenko

Hello, Nickita! You wrote to Alexey V Bugrov on Sun, 24 Feb 2008 23:44:04 +0300:

NA>>> return ((int []){1,2,3,4})[1]; AVB>> test.c AVB>> test.c(3) : error C2059: syntax error : '{' NA> Чем чобирал?

MSVC2005.

AVB>> Откуда такая чушь? Какому стандарту она соответствует?

NA> === a.c === NA> int test1() NA> { NA> return ((int []){1,2,3,4})[1]; NA> }

$ gcc -Wextra -Wall -pedantic -ansi test.c test.c: In function `main': test.c:3: warning: ISO C90 forbids compound literals

NA> int test2() NA> { NA> return ({goto L; 0;}) && ({L: 5;}); NA> }

$ gcc -Wextra -Wall -pedantic -ansi test.c test.c: In function `test2': test.c:3: warning: ISO C forbids braced-groups within expressions test.c:3: warning: ISO C forbids braced-groups within expressions

NA> gcc -c a.c - собирает NA> gcc -c -W -Wall a.c - собирает NA> gcc -std=c99 -W -Wall -c a.c собирает NA> gcc -std=c89 -W -Wall -c a.c собирает.

Ага. Еще скажи даже ворнингов не выдает.

NA> Какие еще стандарты вы помните?

Вы таки сами посмотрите в С89 и C99. А гнусное поделие, при всех его достоинствах, слишком либерально трактует стандарты, впрочем даже оно против применения групп операторов внутри выражений.

WBR, AVB

Reply to
Alexey V Bugrov

Hello Kirill.

Sun Feb 24 2008 07:58, Kirill Frolov wrote to me:

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

Это для тех, кто не любит ножей, заточенных с обеих сторон. И без ручки. :)

Dimmy.

Reply to
Dimmy Timchenko

Привет, Alexey !

25 Feb 08 , 10:45 Alexey V Bugrov писал к Nickita A Startcev:

NA>>>> return ((int []){1,2,3,4})[1]; AVB>>> test.c AVB>>> test.c(3) : error C2059: syntax error : '{' NA>> Чем чобирал?

AVB> MSVC2005.

AVB>>> Откуда такая чушь? Какому стандарту она соответствует?

NA>> === a.c === NA>> int test1() NA>> { NA>> return ((int []){1,2,3,4})[1]; NA>> }

AVB> $ gcc -Wextra -Wall -pedantic -ansi test.c AVB> test.c: In function `main': AVB> test.c:3: warning: ISO C90 forbids compound literals

какой версии у тебя гцц? мой гцц не знает про -Wextra

NA>> int test2() NA>> { NA>> return ({goto L; 0;}) && ({L: 5;}); NA>> }

AVB> $ gcc -Wextra -Wall -pedantic -ansi test.c AVB> test.c: In function `test2': AVB> test.c:3: warning: ISO C forbids braced-groups within expressions AVB> test.c:3: warning: ISO C forbids braced-groups within expressions

убери -pedantic - и всё соберется.

NA>> gcc -c a.c - собирает NA>> gcc -c -W -Wall a.c - собирает NA>> gcc -std=c99 -W -Wall -c a.c собирает NA>> gcc -std=c89 -W -Wall -c a.c собирает.

AVB> Ага. Еще скажи даже ворнингов не выдает.

именно. без -педантик ворнингов не дает.

NA>> Какие еще стандарты вы помните?

AVB> Вы таки сами посмотрите в С89 и C99. А гнусное поделие, при всех его AVB> достоинствах, слишком либерально трактует стандарты, впрочем даже оно AVB> против применения групп операторов внутри выражений.

... но только в педантичном режиме. а без педантика - всё нормально. То есть, такие маразматические выражения таки часть языка.

кстати, ключ -педантик форсирует применение стандарта 'iso с89', который не самый новый.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... "кАнтора Государственной Безопасности"

Reply to
Nickita A Startcev

Да? В GCC действительно нет. Жить не мешает. Просто от использования фич нестандартного компилятра придётся отказаться. Самое тяжёлое, наверное, битовые переменные, актуальные в основном для x51. Остальное решаеся. Да и битовые переменные скорей тоже. Это просто ум применять надо.

А вот и нет. Hу по большей части нет. Hомера строк и простые переменные сохранятся. Что, в принципе, и обеспечивает большинство IDE.

Reply to
Kirill Frolov

Поделка финских студентов не умеет правильно парсить исходник на ц сасёТ.

Reply to
Kirill Frolov
[...C--...]

А почему вы справшиваете?

PL/M != PL/I.

Reply to
Kirill Frolov

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

2008 11:46:09 +0000 (UTC):

KF> Да?

Что "да?"

KF> В GCC действительно нет. Жить не мешает.

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

KF> Просто от использования фич нестандартного компилятра придётся KF> отказаться.

Гораздо проще отказаться от этих на фиг не нужных горбатых инструментов и их на фиг не нужных расширений в пользу действительно нужных.

KF> Самое тяжёлое, наверное, битовые переменные, актуальные в основном для KF> x51. Остальное решаеся. Да и битовые переменные скорей тоже. Это просто KF> ум применять надо.

Поймет эта программа такие описания

persistent bank2 char foo; bank2 bit bbb; void interrupt sys_int(void);

Если нет, она идет лесом в пеший эротический тур. Если да, расскажешь потом как ее с оболочкой ICE скрестить.

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

KF> А вот и нет. Hу по большей части нет. Hомера строк и простые KF> переменные сохранятся.

Где они сохраняются? Hа сколько я знаю, gcc позволяет скажем вложенные функции описывать, перевод этого на голый С с сохранением номеров строк и переменных - в студию. Да хотябы просто описанные внутри блока переменные:

{ case 1: { int i; ... } break;

case 2: { char i; ... } break; }

переведи на ANSI C с сохранением номеров строк и переменных.

KF> Что, в принципе, и обеспечивает большинство IDE.

Да ну?

dima

formatting link

Reply to
Dmitry Orlov

Hello, Nickita! You wrote to Alexey V Bugrov on Mon, 25 Feb 2008 14:09:08 +0300:

NA>>> === a.c === NA>>> int test1() NA>>> { NA>>> return ((int []){1,2,3,4})[1]; NA>>> }

AVB>> $ gcc -Wextra -Wall -pedantic -ansi test.c AVB>> test.c: In function `main': AVB>> test.c:3: warning: ISO C90 forbids compound literals

NA> какой версии у тебя гцц?

3.4.4

NA> мой гцц не знает про -Wextra

Это тоже самое, что -W.

NA>>> int test2() NA>>> { NA>>> return ({goto L; 0;}) && ({L: 5;}); NA>>> }

AVB>> $ gcc -Wextra -Wall -pedantic -ansi test.c AVB>> test.c: In function `test2': AVB>> test.c:3: warning: ISO C forbids braced-groups within expressions AVB>> test.c:3: warning: ISO C forbids braced-groups within expressions

NA> убери -pedantic - и всё соберется.

Зачем? Это хоть какая-то проверка на соответствие ANSI/ISO C, хоть и не до конца работающая

AVB>> Вы таки сами посмотрите в С89 и C99. А гнусное поделие, при всех его AVB>> достоинствах, слишком либерально трактует стандарты, впрочем даже оно AVB>> против применения групп операторов внутри выражений.

NA> ... но только в педантичном режиме. а без педантика - всё нормально. NA> То есть, такие маразматические выражения таки часть языка.

ссылка на текст стандарта уже будет? А то пока мы рассуждаем о том, что Рабинович, то бишь gcc напел.

NA> кстати, ключ -педантик форсирует применение стандарта 'iso с89', NA> который не самый новый.

man gcc сам сделаешь или здесь процитировать? А то, о чем ты говоришь - ключик -ansi

Хорошо:

int test2() { return ({goto L; 0;}) && ({L: 5;}); }

$ gcc -Wextra -Wall -pedantic -std=c99 test.c test.c: In function `test2': test.c:3: warning: ISO C forbids braced-groups within expressions test.c:3: warning: ISO C forbids braced-groups within expressions

WBR, AVB

Reply to
Alexey V Bugrov

Привет, Kirill !

25 Feb 08 , 14:54 Kirill Frolov писал к Nickita A Startcev:

KF> Поделка финских студентов не умеет правильно парсить исходник на ц KF> сасёТ.

хехе. А у мелкомягких до сих пор баг с областью видимости протаскивается как фича?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... обучающая фирма "Тантал Сизифович"

Reply to
Nickita A Startcev

Привет, Nickita A Startcev!

25.02.2008 14:09 Вы писали:

alx2% cat test.c int test2() { return ({goto L; 0;}) && ({L: 5;}); } alx2% gcc -std=c99 -S test.c test.c: В функции 'test2' test.c:3: ошибка: jump into statement expression alx2% gcc --version gcc (GCC) 4.2.2

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

Reply to
Alex Mogilnikov

Привет, Dmitry Orlov!

25.02.2008 15:33 Вы писали:

А в каком месте тут отступление от ANSI C?

Reply to
Alex Mogilnikov

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

Я лет пятнадцать назад много писал на PL/M, работа такая была и сохранились смутные воспоминания, что PL/M к PL ну никаким боком вообще. Хорошо помню, что купил тогда книжку по PL и узнал, что оно ни хрена не PL/M, совсем про другое книжка :).

Dima

Reply to
Dima Badisov

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Mon, 25 Feb

2008 19:01:14 +0300:

AM> Привет, Dmitry Orlov!

AM> 25.02.2008 15:33 Вы писали:

AM> А в каком месте тут отступление от ANSI C?

Да, тормознул. Hу так:

{ case 1: { for(int i=1; i<1000;i++); ... } break;

case 2: { for(char i;i<100;i++); ... } break; }

dima

formatting link

Reply to
Dmitry Orlov

Hello Dima Badisov!

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

DB> Я лет пятнадцать назад много писал на PL/M, работа такая была и DB> сохранились смутные воспоминания, что PL/M к PL ну никаким боком вообще. DB> Хорошо помню, что купил тогда книжку по PL и узнал, что оно ни хрена не DB> PL/M, совсем про другое книжка :).

Hу, по "возмущённым выкрикам с мест" я уже догадался, что к оригинальному PL/I оно "никаким боком" ... "Hо здря !"(ц) Ж&}

Reply to
Alexander Konosevich

Hello Kirill Frolov!

Потому что достаточно долго пользовал первое - и намерен попользовать второе ;)

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.