Hallo,
ich habe ein Board mit einem ATXMEGA64A3U. Bei diesem möchte ich den
32MHz Takt verwenden.
Folgender Code läuft auf einer anderen Hardware mit ATXMEGA128A1, aber
nicht auf dem hier erwähnten Board.
1 | void sys_clk_init( void )
|
2 | {
|
3 | OSC.CTRL |= OSC_RC32MEN_bm | OSC_RC32KEN_bm; /* Enable the internal 32MHz & 32KHz oscillators */
|
4 | while(!((OSC.STATUS & OSC_RC32MRDY_bm) && (OSC.STATUS & OSC_RC32KRDY_bm))); // wait till stable
|
5 | DFLLRC32M.CTRL = DFLL_ENABLE_bm ; /* Enable DFLL - defaults to calibrate against internal 32Khz clock */
|
6 | CCP = CCP_IOREG_gc; /* Disable register security for clock update */
|
7 | CLK.CTRL = CLK_SCLKSEL_RC32M_gc; /* Switch to 32MHz clock */
|
8 | OSC.CTRL &= ~OSC_RC2MEN_bm; /* Disable 2Mhz oscillator */
|
9 |
|
10 | return;
|
11 | }
|
Errata hatte ich angeschaut, aber nichts relevantes entdeckt. Wer weiß
Rat?
Grüße, Alex