http://elec-studio.eco.coocan.jp/tool_soft02.html
例えば次の例。
TCCR1B &= ~(1 << CS12);
これはCS12のみをゼロにする(フィルターをかける)コード。
CS12はビット番号を取得するグローバル変数。
(0 or 1の値と思っていたら違った)
CS12は2番なので、1<
したがって、
TCCR1B &= ~(1 << CS12);
=> TCCR1B =TCCR1B & ~ (1 << CS12);
=> TCCR1B =TCCR1B & ~ (0b00000100);
=> TCCR1B =TCCR1B & 0b11111011;
3番のビットのみフィルターされて0となる。