Servus,
Andy schrieb:
> Ich probiere gerade beim ATxmega32A4 den externen Quarz zu
>
> konfigurieren. Leider gibt es dabei Probleme.
CodeVisionAVR
CodeWizardAVR V2.04.8 Evaluation
16Mhz Quarz!!!
// System Clocks initialization
void system_clocks_init(void) // wird hier aufgerufen
{
unsigned char n,s;
// Save interrupts enabled/disabled state
s=SREG;
// Disable interrupts
cli();
// External 16000,000 kHz oscillator initialization
OSC.XOSCCTRL=OSC_FRQRANGE_12TO16_gc | OSC_XOSCSEL_XTAL_16KCLK_gc;
// Enable the external oscillator
OSC.CTRL|=OSC_XOSCEN_bm;
// System Clock prescaler A division factor: 1
// System Clock prescalers B & C division factors: B:1, C:1
// ClkPer4: 16000,000 kHz
// ClkPer2: 16000,000 kHz
// ClkPer: 16000,000 kHz
// ClkCPU: 16000,000 kHz
n=(CLK.PSCTRL & (~(CLK_PSADIV_gm | CLK_PSBCDIV1_bm | CLK_PSBCDIV0_bm)))
|
CLK_PSADIV_1_gc | CLK_PSBCDIV_1_1_gc;
CCP=CCP_IOREG_gc;
CLK.PSCTRL=n;
// Wait for the external oscillator to stabilize
while ((OSC.STATUS & OSC_XOSCRDY_bm)==0);
// Select the system clock source: External Osc. or Clock
n=(CLK.CTRL & (~CLK_SCLKSEL_gm)) | CLK_SCLKSEL_XOSC_gc;
CCP=CCP_IOREG_gc;
CLK.CTRL=n;
// Disable the unused oscillators: 2 MHz, 32 MHz, internal 32 kHz, PLL
OSC.CTRL&= ~(OSC_RC2MEN_bm | OSC_RC32MEN_bm | OSC_RC32KEN_bm |
OSC_PLLEN_bm);
// Peripheral Clock output: Disabled
PORTCFG.CLKEVOUT=(PORTCFG.CLKEVOUT & (~PORTCFG_CLKOUT_gm)) |
PORTCFG_CLKOUT_OFF_gc;
// Restore interrupts enabled/disabled state
SREG=s;
// Restore optimization for size if needed
}
Gruß xmega