xvr 12 28 мая, 2008 Опубликовано 28 мая, 2008 · Жалоба А мне больше такая: #define PORTX.Y(x) PORTX = (PORTX & ~(1 << Y)) | (x << Y) Это для конкретного порта и пина. x должен быть или 0 или 1. По стандарту С (и С++) после #define должен быть ИДЕНТИФИКАТОР, т.е. нечто, состоящее из букв (английских), цифр и знака '_'. Точка ('.') к этому набору не относится, так что ЛЮБОЙ С компилятор имеет полное право обругаться на эту конструкцию, или трактовать ее как #define PORTX .Y(x) PORTX = (PORTX & ~(1 << Y)) | (x << Y) что для PORTX.Y(1) будет раскрываться в .Y(x) PORTX = (PORTX & ~(1 << Y)) | (x << Y) .Y(1) что явно не то, что хотел автор Использовал в CodeVision Очень повезло, что CodeVision разрешил точку в имени define'а, gcc (он же WinAvr) трактовал это иначе :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться