Zápis dat do OCR1A u atmegy16

Zdravím. Potřeboval bych od někoho poradit, jak se zapisujou data do registru OCR1A. Zkoušel jsem to různě, např.
LDI REG,39 ;nastavení
LDI POMOC,16
OUT OCR1AH,REG ;10 000 průběhů do časovače
OUT OCR1AL,POMOC ;pro 10 ms

ale pokaždy se mi zapsala hodnota
OCR1AH 0x01
OCR1AL 0x10

Poradil by někdo v čem dělám chybu. Je to moje první práce s časovačem u avr.

mě tvůj kód normálně chodí. Jak máš definované ty registry?

Ristry jsou
.DEF REG=R16 ;prac. registr
.DEF POMOC=R20

Je nutné dodržovat pořadí čtení a zápisu při přístupu do 16 bitových registrů. Při zápisu nejdříve high pak low byte, při čtení low pak high byte. Bylo to dodrženo?

V programu to mám přesně zasebou tak jak to je v prvním příspěvku. Což odpovídá. Jinak kus kódu kde to je umístěny.

[code]
.CSEG

RJMP RESET
.ORG OC1Aaddr			;přerušení časovače
RJMP TIME

.ORG $30

RESET:
LDI REG,LOW(RAMEND)
OUT SPL,REG ;nastavení SP
LDI REG,HIGH(RAMEND)
OUT SPH,REG ;na konec SRAM
SER REG
OUT DDRA,REG ;výstup
OUT DDRD,REG ;výstup
LDI REG,253
OUT DDRB,REG ;bit 1-vstup, ostatní výstup
LDI REG,192
OUT DDRC,REG ;0-5 vstup, 6-7 výstup
SER REG ;všechny na log.1 nebo zapnout pull up
OUT PORTA,REG
OUT PORTB,REG
OUT PORTC,REG
OUT PORTD,REG
RCALL LCDINI ;inicializace LCD
RCALL SPIINI ;inicializace SPI
LDI REG,(1<<WGM11) ;nastavení režimu CTC
OUT TCCR1A,REG
LDI REG,(1<<OCIE1A) ;povolení přerušení časovače
OUT TIMSK,REG
LDI REG,39 ;nastavení
LDI POMOC,16
OUT OCR1AH,REG ;10 000 průběhů do časovače
OUT OCR1AL,POMOC ;pro 10 ms
SEI ;povolí přerušení
CLR STAV
CBI PORTB,PIP[/code]

Instrukce
LDI REG,(1<<WGM11) ;nastavení režimu CTC
OUT TCCR1A,REG
nenastavuje mod 0 tedy CTC, ale mod 2 tj.PWM, Phase Correct, 9-bit.
Proto máš v registru ORC1H = 0x01, protože je OCRA pouze devítibitový.
Pokud chceš, aby timer1 fungoval jako dělička kmitočtu, zvol módy 4, 9, 11,15.

Dík za radu, už to chodí podle představ:-) Nad tímhle bych asi hodně dlouho přemejšlel, než bych to našel a to jestli vůbec. Moc dík.