| — прбитовое или, где бы ни применялось.
|= (а также -=, +=, %=, /=, *=, &=... и т.д.) это просто сокращенная запись..
твоё TCCR0 |= (1<<CS02)|(0<<CS01)|(1<<CS00);
означает TCCR0 = (TCCR0)|(1<<CS02)|(0<<CS01)|(1<<CS00);
и выполняется в МК за 3 команды:
R16 <— TCCR0;
R16 <— R16|(0b00000101); значение в скобках вычисляется ещё при компиляции и в мк закладывается уже в таком виде,
TCCR0 <— R16;
в регистр общего назначения содержимое TCCR0 выгружается потому, что мк не умеет с ним работать напрямую... простая (без |) запись в него фиксированного значения также будет происходить через РОН, но уже без выгрузки в РОН исходного состояния регистра (т.е. займёт 2 команды).
Последний раз редактировалось
Ivanoff-iv Чт янв 23, 2020 05:55:25, всего редактировалось 1 раз.