Цитата(toshas @ Sep 18 2008, 21:42)

Добрый вечер!
есть atmega3250, PORTJ имеет только 7 бит, программа codevision 1.24.7f:
при явном задании PORTJ=0b0000010 бит1 правильно ставится в "1" и на ножке 5 вольт.
необходимо изменить бит1 не затронув остальные.
конструкция PORTJ = PORTJ ^ (1 << 1) работающая на 8ми битных портах здесь дает следующее:
на ножке вольтметр показывает 2.5В и соответственно осциллограф периодическое переключение 0-1
как правильно написать код ?
спасибо!
Как обычно:
Код
#define LED_PIN 1
PORTJ |= (1<<LED_PIN); // установить 1
PORTJ &= ~(1<<LED_PIN); // 0 соответственно
Ваша конструкция (1 << 1) малоинформативна, лучше сразу воспользоваться помощью препроцессора и определить такие константы, как выводы порта через #define.