Цитата(Станис @ Apr 15 2010, 14:48)

при всем том что написано в разделе "Accessing 16-bit Registers" С регистром TCNT1 можно работать как обычной 16битной переменной.. а вот регистра TCNT3 вообще нет.. даже в ДШ. кто найдет напишите адрес
Ну даладно вопрос решен по другому. Был использован регистр TCNT1 на множество процессов.. только вот код вышел раз в 20 больше...

Не понятно что у вас не получается....
В документации всё предельно ясно написано с примерами кода:
Код
Assembly Code Examples(1)
...
; Set TCNTn to 0x01FF
ldi r17,0x01
ldi r16,0xFF
out TCNTnH,r17
out TCNTnL,r16
; Read TCNTn into r17:r16
in r16,TCNTnL
in r17,TCNTnH
...
C Code Examples(1)
unsigned int i;
...
/* Set TCNTn to 0x01FF */
TCNTn = 0x1FF;
/* Read TCNTn into i */
i = TCNTn;
Если пишете на С то вообще не понятно к чему эта возня с адресами, разделениями на H/L и т.п.
TCNT3 = 0x1234; //запись
или
unsigned int tcnt3_val = TCNT3; //чтение
На ассемблере просто соблюдайте порядок:
при записи TCNT3H/TCNT3L
при чтении TCNT3L/TCNT3H