Что-то я не пойму. Есть, например, документ AVR1306. Это апнот по таймеру в применении к XMega.
Там написано, как идет работа с регистром TEMP (для записи - пункт 4.2). Написано, что если сделана правильная последовательность записи (младший, потом старший), то содержимое младшего
автоматически записывается в TEMP, а при записи старшего - переносится в настоящий CNTL.
Т.е. правильный код
Код
clr temp
sts TCC0_CNT,temp //Пишем младший, на самом деле попадает в TEMP
sts TCC0_CNT+1,temp //Пишем старший, TEMP автоматически копируется в CNTL
Можно работать и через регистр TEMP (но смысла в этом немного)
Код
clr temp
sts TCC0_TEMP,temp //Эмулируем псевдозапись в CNTL
sts TCC0_CNT+1,temp //Пишем старший, TEMP автоматически копируется в CNTL
А нужно вручную иметь доступ к TEMP для сохранения его при обработке прерывания (и последующего восстановления). Там же, в апноте все написано.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин