Probleme mit CCP Register ATxmega64A3

OP #3081691
Lesenswert?

Hallo,
Ich habe Probleme mit dem CCP Register. Wenn ich es setzen möchte, steht 
im AVR Simulator (Atmel Studio 6.0.1996) im CCP register immer 0x01 und 
nicht 0xD8. Ich verstehe nicht was ich hierbei falsch mache. Ich weiß 
auch, dass das Register, das vom CCP Schutz betroffen ist, innerhalb von 
4 Takten beschrieben sein muss. Dieser Call soll dafür sorgen das die 
Taktfrequenz der CPU 40 MHz betragen soll (Ich weiß, dass die CPU damit 
übertaktet wird). Kann mir hierbei jemand bitte helfen?

Grüße Steven


1
init_cpu_clock:
2
  //Enable internal 2 Mhz crystal
3
  ldi temp, OSC_RC2MEN_bm
4
  sts OSC_CTRL, temp
5

6
  //Set PLLFAC to 20 and select the internal 2 MHZ crystal
7
  ldi temp,  OSC_PLLSRC_RC2M_gc | (1<<OSC_PLLFAC2_bp) | (1<<OSC_PLLFAC4_bp)
8
  sts OSC_PLLCTRL, temp
9

10
  //When RC2MRDY is set then enable internal PLL
11
  waitforcrystal:
12
    lds temp, OSC_STATUS
13
    sbrs temp, OSC_RC2MRDY_bp
14
    rjmp waitforcrystal
15

16
  //Enable PLL
17
  lds temp, OSC_CTRL
18
  sbr temp, (1<<OSC_PLLEN_bp)
19
  sts OSC_CTRL, temp
20

21
  //Wait till the PLL is stable
22
  waitforpll:
23
    lds temp, OSC_STATUS
24
    sbrs temp, OSC_PLLRDY_bp
25
    rjmp waitforpll
26

27
  //Remove CPU Control Protection
28
  ldi temp, CCP_IOREG_gc
29
  out CPU_CCP, temp //Danach steht im CCP Register immer 0x01
30

31
  //Select PLL as Clock Source
32
  ldi temp, CLK_SCLKSEL_PLL_gc
33
  sts CLK_CTRL, temp
34

35
  ret

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren