Цитата(_Ivan_33 @ May 1 2008, 18:12)

Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. - вот похоже я пошел правильным путем!
а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...
ну ERRATa я скачал раньше!
Есть конечно, команды sbi и cbi, позволяющие обращаться к битам регистров индивидуально. Другое дело, что только к I/O регистрам. GIMSK к ним не относится.
можно было бы сделать так:
ldi r16, 1<<TOIE1
out TIMSK,r16
Но при этом изменятся биты, которые мы не хотели трогать
В итоге приходится делать так - для установки бита в 1:
in r16,TIMSK
andi r16,1<<TOIE1
out TIMSK,r16
на С:
TIMSK|=(1<<TOIE1); - установка в 1
TIMSK&=!(1<<TOIE1); - сброс в 0
Регистры и биты взяты произвольные - для примера
Сообщение отредактировал tazik - May 1 2008, 10:37