logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[attinny13][asm] clkpr częstotliwość zegara

->Mike<- 24 Gru 2010 23:51 1531 2
REKLAMA
  • #1 8909690
    ->Mike<-
    Poziom 11  
    Witam

    Chciałbym zmienić f zegara w t13. Wyczytałem datasheecie że najpierw muszę ustawić bit clkpce(resztę na 0) a potem ustawić clkps0-3 jak tam sobie chcę. Wszystko fajnie ale jakoś to u mnie nie działa. robię to tak:
    tryb3:
    	ldi		r16, 0b10000000
    	out		clkpr, r16
    	ldi		r16, 0b10000110
    	out		clkpr, r16
    	in		wyp, ocr0a
    	ldi		wyp, 0b01100100
    	out		ocr0a, wyp
    	in		r16, tccr0b
    	sbr 	r16, (1<<cs02)
    	out 	tccr0b, r16	
    	reti

    z góry dziękuję za pomoc

    Mike
  • REKLAMA
  • #2 8910089
    zumek
    Poziom 39  
    No więc porównajmy Twój kod z tym, co zawiera dokumentacja.

    To avoid unintentional changes of clock frequency, a special write procedure must be followed
    to change the CLKPS bits:


    1.Write the Clock Prescaler Change Enable (CLKPCE) bit to one and all other bits in
    CLKPR to zero.

    	ldi		r16, 0b10000000
    	out		clkpr, r16

    2.Within four cycles, write the desired value to CLKPS while writing a zero to CLKPCE.
    
    	ldi		r16, 0b10000110
    	out		clkpr, r16


    Co ty na to :?:
  • #3 8910336
    ->Mike<-
    Poziom 11  
    Dzięki pomogło. Źle zinterpretowałem to zdanie.

    Pzdr.
    Mike
REKLAMA