Цитата(MALLOY2 @ Jul 19 2005, 17:57)
компилято здесь не причем это аппаратная фича PORTG не имеет битовую адресацию в отличии от порта С, нужно делать так ->
Установка бита порта PORTG|=(1<<3) установить 3 бит порта
Сброс бита порта PORTG&=~(1<<3) сбросить 3 бит порта
Мне очень интересно стало, что за битовая адресация а АВР, это ведь не 51-й. Полез в PDF. Ответ правильный, не не совсем понятный. Просто адреса регистров указанного порта лежат за пределами той области, где работают команды SBI и CBI. Компилятор видимо заточен как раз под них. Т.е. это в определенной мере недоработка компилятора, т.к. он не опознает, что адрес лежит вне допустимой области. Кстати, попробовал PORTC.0=0 в ICC, которым и пользуюсь, так он даже этого не понимает.