|
|
@@ -274,6 +274,7 @@ enum IRQ_NUMBER_t { |
|
|
|
#define HAS_KINETIS_I2C1 |
|
|
|
#define HAS_KINETIS_LLWU_16CH |
|
|
|
|
|
|
|
// Teensy-LC |
|
|
|
#elif defined(__MKL26Z64__) |
|
|
|
enum IRQ_NUMBER_t { |
|
|
|
IRQ_DMA_CH0 = 0, |
|
|
@@ -910,23 +911,25 @@ enum IRQ_NUMBER_t { |
|
|
|
#define SIM_SCGC1_I2C3 ((uint32_t)0x00000080) // I2C3 Clock Gate Control |
|
|
|
#define SIM_SCGC1_I2C2 ((uint32_t)0x00000040) // I2C2 Clock Gate Control |
|
|
|
#define SIM_SCGC2 (*(volatile uint32_t *)0x4004802C) // System Clock Gating Control Register 2 |
|
|
|
#if defined(KINETISK) |
|
|
|
#define SIM_SCGC2_DAC1 ((uint32_t)0x00002000) // DAC1 Clock Gate Control |
|
|
|
#define SIM_SCGC2_DAC0 ((uint32_t)0x00001000) // DAC0 Clock Gate Control |
|
|
|
#define SIM_SCGC2_DAC0 ((uint32_t)0x00001000) // DAC0 Clock on APIS1 (base addr 400CC000) |
|
|
|
#define SIM_SCGC2_TPM2 ((uint32_t)0x00000400) // TPM2 Clock Gate Control |
|
|
|
#define SIM_SCGC2_TPM1 ((uint32_t)0x00000200) // TPM1 Clock Gate Control |
|
|
|
#define SIM_SCGC2_LPUART0 ((uint32_t)0x00000010) // LPUART0 Clock Gate Control |
|
|
|
#define SIM_SCGC2_ENET ((uint32_t)0x00000001) // Ethernet Clock Gate Control |
|
|
|
#endif |
|
|
|
#define SIM_SCGC3 (*(volatile uint32_t *)0x40048030) // System Clock Gating Control Register 3 |
|
|
|
#define SIM_SCGC3_ADC1 ((uint32_t)0x08000000) // ADC1 Clock Gate Control |
|
|
|
#define SIM_SCGC3_FTM3 ((uint32_t)0x02000000) // FTM3 Clock Gate Control |
|
|
|
#define SIM_SCGC3_FTM2 ((uint32_t)0x01000000) // FTM2 Clock Gate Control |
|
|
|
#define SIM_SCGC3_FTM2 ((uint32_t)0x01000000) // FTM2 Clock on APIS1 (base addr 400B8000) |
|
|
|
#define SIM_SCGC3_SDHC ((uint32_t)0x00020000) // SDHC Clock Gate Control |
|
|
|
#define SIM_SCGC3_SPI2 ((uint32_t)0x00001000) // SPI2 Clock Gate Control |
|
|
|
#define SIM_SCGC3_FLEXCAN1 ((uint32_t)0x00000010) // FLEXCAN1 Clock Gate Control |
|
|
|
#define SIM_SCGC3_USBHSDCD ((uint32_t)0x00000008) // USBHSDCD Clock Gate Control |
|
|
|
#define SIM_SCGC3_USBHSPHY ((uint32_t)0x00000004) // USBHSPHY Clock Gate Control |
|
|
|
#define SIM_SCGC3_USBHS ((uint32_t)0x00000002) // USBHS Clock Gate Control |
|
|
|
#define SIM_SCGC3_RNGA ((uint32_t)0x00000001) // RNGA Clock Gate Control |
|
|
|
#define SIM_SCGC3_RNGA ((uint32_t)0x00000001) // RNGA Clock on APIS1 (base addr 400A0000) |
|
|
|
#define SIM_SCGC4 (*(volatile uint32_t *)0x40048034) // System Clock Gating Control Register 4 |
|
|
|
#define SIM_SCGC4_VREF ((uint32_t)0x00100000) // VREF Clock Gate Control |
|
|
|
#define SIM_SCGC4_CMP ((uint32_t)0x00080000) // Comparator Clock Gate Control |
|
|
@@ -943,9 +946,6 @@ enum IRQ_NUMBER_t { |
|
|
|
#define SIM_SCGC4_SPI1 ((uint32_t)0x00800000) // |
|
|
|
#define SIM_SCGC4_SPI0 ((uint32_t)0x00400000) // |
|
|
|
#endif |
|
|
|
// TODO: DAC0, FTM2, and RNGA can be accessed through both AIPS0 and AIPS1 (on K66) |
|
|
|
// make sure the clock control bits correspond to the register addresses |
|
|
|
// used below for these 3 peripherals |
|
|
|
#define SIM_SCGC5 (*(volatile uint32_t *)0x40048038) // System Clock Gating Control Register 5 |
|
|
|
#define SIM_SCGC5_PORTE ((uint32_t)0x00002000) // Port E Clock Gate Control |
|
|
|
#define SIM_SCGC5_PORTD ((uint32_t)0x00001000) // Port D Clock Gate Control |
|
|
@@ -955,28 +955,28 @@ enum IRQ_NUMBER_t { |
|
|
|
#define SIM_SCGC5_TSI ((uint32_t)0x00000020) // Touch Sense Input TSI Clock Gate Control |
|
|
|
#define SIM_SCGC5_LPTIMER ((uint32_t)0x00000001) // Low Power Timer Access Control |
|
|
|
#define SIM_SCGC6 (*(volatile uint32_t *)0x4004803C) // System Clock Gating Control Register 6 |
|
|
|
#if defined(KINETISL) |
|
|
|
#define SIM_SCGC6_DAC0 ((uint32_t)0x80000000) // DAC on Kinetis-L |
|
|
|
#define SIM_SCGC6_RTC ((uint32_t)0x20000000) // RTC Access |
|
|
|
#define SIM_SCGC6_ADC0 ((uint32_t)0x08000000) // ADC0 Clock Gate Control |
|
|
|
#define SIM_SCGC6_FTM2 ((uint32_t)0x04000000) // FTM2 Clock (TODO: which bit really controls FTM2) |
|
|
|
#define SIM_SCGC6_FTM1 ((uint32_t)0x02000000) // FTM1 Clock Gate Control |
|
|
|
#define SIM_SCGC6_FTM0 ((uint32_t)0x01000000) // FTM0 Clock Gate Control |
|
|
|
#ifdef KINETISL |
|
|
|
#define SIM_SCGC6_TPM2 ((uint32_t)0x04000000) // FTM1 Clock Gate Control |
|
|
|
#define SIM_SCGC6_TPM2 ((uint32_t)0x04000000) // FTM2 Clock Gate Control |
|
|
|
#define SIM_SCGC6_TPM1 ((uint32_t)0x02000000) // FTM1 Clock Gate Control |
|
|
|
#define SIM_SCGC6_TPM0 ((uint32_t)0x01000000) // FTM0 Clock Gate Control |
|
|
|
#endif |
|
|
|
#define SIM_SCGC6_PIT ((uint32_t)0x00800000) // PIT Clock Gate Control |
|
|
|
#elif defined(KINETISK) |
|
|
|
//#define SIM_SCGC6_DAC0 ((uint32_t)0x80000000) // DAC0 Clock on APIS0 (base addr 4003F000) |
|
|
|
//#define SIM_SCGC6_FTM2 ((uint32_t)0x04000000) // FTM2 Clock on APIS0 (base addr 4003A000) |
|
|
|
#define SIM_SCGC6_PDB ((uint32_t)0x00400000) // PDB Clock Gate Control |
|
|
|
#define SIM_SCGC6_USBDCD ((uint32_t)0x00200000) // USB DCD Clock Gate Control |
|
|
|
#define SIM_SCGC6_CRC ((uint32_t)0x00040000) // CRC Clock Gate Control |
|
|
|
#define SIM_SCGC6_I2S ((uint32_t)0x00008000) // I2S Clock Gate Control |
|
|
|
#ifdef KINETISK |
|
|
|
#define SIM_SCGC6_SPI1 ((uint32_t)0x00002000) // SPI1 Clock Gate Control |
|
|
|
#define SIM_SCGC6_SPI0 ((uint32_t)0x00001000) // SPI0 Clock Gate Control |
|
|
|
#endif |
|
|
|
#define SIM_SCGC6_RNGA ((uint32_t)0x00000200) // RNGA Clock Gate Control |
|
|
|
//#define SIM_SCGC6_RNGA ((uint32_t)0x00000200) // RNGA Clock on APIS0 (base addr 40029000) |
|
|
|
#define SIM_SCGC6_FLEXCAN0 ((uint32_t)0x00000010) // FlexCAN0 Clock Gate Control |
|
|
|
#define SIM_SCGC6_CRC ((uint32_t)0x00040000) // CRC Clock Gate Control |
|
|
|
#endif |
|
|
|
#define SIM_SCGC6_RTC ((uint32_t)0x20000000) // RTC Access |
|
|
|
#define SIM_SCGC6_ADC0 ((uint32_t)0x08000000) // ADC0 Clock Gate Control |
|
|
|
#define SIM_SCGC6_FTM1 ((uint32_t)0x02000000) // FTM1 Clock Gate Control |
|
|
|
#define SIM_SCGC6_FTM0 ((uint32_t)0x01000000) // FTM0 Clock Gate Control |
|
|
|
#define SIM_SCGC6_PIT ((uint32_t)0x00800000) // PIT Clock Gate Control |
|
|
|
#define SIM_SCGC6_I2S ((uint32_t)0x00008000) // I2S Clock Gate Control |
|
|
|
#define SIM_SCGC6_DMAMUX ((uint32_t)0x00000002) // DMA Mux Clock Gate Control |
|
|
|
#define SIM_SCGC6_FTFL ((uint32_t)0x00000001) // Flash Memory Clock Gate Control |
|
|
|
#define SIM_SCGC7 (*(volatile uint32_t *)0x40048040) // System Clock Gating Control Register 7 |
|
|
@@ -2211,60 +2211,84 @@ enum IRQ_NUMBER_t { |
|
|
|
|
|
|
|
// Multipurpose Clock Generator (MCG) |
|
|
|
|
|
|
|
#define MCG_C1 (*(volatile uint8_t *)0x40064000) // MCG Control 1 Register |
|
|
|
#define MCG_C1_IREFSTEN ((uint8_t)0x01) // Internal Reference Stop Enable, Controls whether or not the internal reference clock remains enabled when the MCG enters Stop mode. |
|
|
|
#define MCG_C1_IRCLKEN ((uint8_t)0x02) // Internal Reference Clock Enable, Enables the internal reference clock for use as MCGIRCLK. |
|
|
|
#define MCG_C1_IREFS ((uint8_t)0x04) // Internal Reference Select, Selects the reference clock source for the FLL. |
|
|
|
#define MCG_C1_FRDIV(n) ((uint8_t)(((n) & 0x07) << 3)) // FLL External Reference Divider, Selects the amount to divide down the external reference clock for the FLL |
|
|
|
#define MCG_C1_CLKS(n) ((uint8_t)(((n) & 0x03) << 6)) // Clock Source Select, Selects the clock source for MCGOUTCLK |
|
|
|
#define MCG_C2 (*(volatile uint8_t *)0x40064001) // MCG Control 2 Register |
|
|
|
#define MCG_C2_IRCS ((uint8_t)0x01) // Internal Reference Clock Select, Selects between the fast or slow internal reference clock source. |
|
|
|
#define MCG_C2_LP ((uint8_t)0x02) // Low Power Select, Controls whether the FLL or PLL is disabled in BLPI and BLPE modes. |
|
|
|
#define MCG_C2_EREFS ((uint8_t)0x04) // External Reference Select, Selects the source for the external reference clock. |
|
|
|
#define MCG_C2_HGO0 ((uint8_t)0x08) // High Gain Oscillator Select, Controls the crystal oscillator mode of operation |
|
|
|
#define MCG_C2_RANGE0(n) ((uint8_t)(((n) & 0x03) << 4)) // Frequency Range Select, Selects the frequency range for the crystal oscillator |
|
|
|
#define MCG_C2_LOCRE0 ((uint8_t)0x80) // Loss of Clock Reset Enable, Determines whether an interrupt or a reset request is made following a loss of OSC0 |
|
|
|
#define MCG_C3 (*(volatile uint8_t *)0x40064002) // MCG Control 3 Register |
|
|
|
#define MCG_C3_SCTRIM(n) ((uint8_t)(n)) // Slow Internal Reference Clock Trim Setting |
|
|
|
#define MCG_C4 (*(volatile uint8_t *)0x40064003) // MCG Control 4 Register |
|
|
|
#define MCG_C4_SCFTRIM ((uint8_t)0x01) // Slow Internal Reference Clock Fine Trim |
|
|
|
#define MCG_C4_FCTRIM(n) ((uint8_t)(((n) & 0x0F) << 1)) // Fast Internal Reference Clock Trim Setting |
|
|
|
#define MCG_C4_DRST_DRS(n) ((uint8_t)(((n) & 0x03) << 5)) // DCO Range Select |
|
|
|
#define MCG_C4_DMX32 ((uint8_t)0x80) // DCO Maximum Frequency with 32.768 kHz Reference, controls whether the DCO frequency range is narrowed |
|
|
|
#define MCG_C5 (*(volatile uint8_t *)0x40064004) // MCG Control 5 Register |
|
|
|
#define MCG_C5_PRDIV0(n) ((uint8_t)((n) & 0x1F)) // PLL External Reference Divider |
|
|
|
#define MCG_C5_PLLSTEN0 ((uint8_t)0x20) // PLL Stop Enable |
|
|
|
#define MCG_C5_PLLCLKEN0 ((uint8_t)0x40) // PLL Clock Enable |
|
|
|
#define MCG_C6 (*(volatile uint8_t *)0x40064005) // MCG Control 6 Register |
|
|
|
#define MCG_C6_VDIV0(n) ((uint8_t)((n) & 0x1F)) // VCO 0 Divider |
|
|
|
#define MCG_C6_CME0 ((uint8_t)0x20) // Clock Monitor Enable |
|
|
|
#define MCG_C6_PLLS ((uint8_t)0x40) // PLL Select, Controls whether the PLL or FLL output is selected as the MCG source when CLKS[1:0]=00. |
|
|
|
#define MCG_C6_LOLIE0 ((uint8_t)0x80) // Loss of Lock Interrrupt Enable |
|
|
|
#define MCG_S (*(volatile uint8_t *)0x40064006) // MCG Status Register |
|
|
|
#define MCG_S_IRCST ((uint8_t)0x01) // Internal Reference Clock Status |
|
|
|
#define MCG_S_OSCINIT0 ((uint8_t)0x02) // OSC Initialization, resets to 0, is set to 1 after the initialization cycles of the crystal oscillator |
|
|
|
#define MCG_S_CLKST(n) ((uint8_t)(((n) & 0x03) << 2)) // Clock Mode Status, 0=FLL is selected, 1= Internal ref, 2=External ref, 3=PLL |
|
|
|
#define MCG_S_CLKST_MASK ((uint8_t)0x0C) |
|
|
|
#define MCG_S_IREFST ((uint8_t)0x10) // Internal Reference Status |
|
|
|
#define MCG_S_PLLST ((uint8_t)0x20) // PLL Select Status |
|
|
|
#define MCG_S_LOCK0 ((uint8_t)0x40) // Lock Status, 0=PLL Unlocked, 1=PLL Locked |
|
|
|
#define MCG_S_LOLS0 ((uint8_t)0x80) // Loss of Lock Status |
|
|
|
#define MCG_SC (*(volatile uint8_t *)0x40064008) // MCG Status and Control Register |
|
|
|
#define MCG_SC_LOCS0 ((uint8_t)0x01) // OSC0 Loss of Clock Status |
|
|
|
#define MCG_SC_FCRDIV(n) ((uint8_t)(((n) & 0x07) << 1)) // Fast Clock Internal Reference Divider |
|
|
|
#define MCG_SC_FLTPRSRV ((uint8_t)0x10) // FLL Filter Preserve Enable |
|
|
|
#define MCG_SC_ATMF ((uint8_t)0x20) // Automatic Trim Machine Fail Flag |
|
|
|
#define MCG_SC_ATMS ((uint8_t)0x40) // Automatic Trim Machine Select |
|
|
|
#define MCG_SC_ATME ((uint8_t)0x80) // Automatic Trim Machine Enable |
|
|
|
#define MCG_ATCVH (*(volatile uint8_t *)0x4006400A) // MCG Auto Trim Compare Value High Register |
|
|
|
#define MCG_ATCVL (*(volatile uint8_t *)0x4006400B) // MCG Auto Trim Compare Value Low Register |
|
|
|
#define MCG_C7 (*(volatile uint8_t *)0x4006400C) // MCG Control 7 Register |
|
|
|
#define MCG_C8 (*(volatile uint8_t *)0x4006400D) // MCG Control 8 Register |
|
|
|
#define MCG_C9 (*(volatile uint8_t *)0x4006400E) // MCG Control 9 Register |
|
|
|
#define MCG_C11 (*(volatile uint8_t *)0x40064010) // MCG Control 11 Register |
|
|
|
#define MCG_C12 (*(volatile uint8_t *)0x40064011) // MCG Control 12 Register |
|
|
|
#define MCG_S2 (*(volatile uint8_t *)0x40064012) // MCG Status 2 Register |
|
|
|
#define MCG_T3 (*(volatile uint8_t *)0x40064013) // MCG Test 3 Register |
|
|
|
typedef struct { |
|
|
|
volatile uint8_t C1; |
|
|
|
volatile uint8_t C2; |
|
|
|
volatile uint8_t C3; |
|
|
|
volatile uint8_t C4; |
|
|
|
volatile uint8_t C5; |
|
|
|
volatile uint8_t C6; |
|
|
|
volatile uint8_t S; |
|
|
|
volatile uint8_t unused1; |
|
|
|
volatile uint8_t SC; |
|
|
|
volatile uint8_t unused2; |
|
|
|
volatile uint8_t ATCVH; |
|
|
|
volatile uint8_t ATCVL; |
|
|
|
volatile uint8_t C7; |
|
|
|
volatile uint8_t C8; |
|
|
|
volatile uint8_t C9; |
|
|
|
volatile uint8_t unused3; |
|
|
|
volatile uint8_t C11; |
|
|
|
volatile uint8_t C12; |
|
|
|
volatile uint8_t S2; |
|
|
|
volatile uint8_t T3; |
|
|
|
} KINETIS_MCG_t; |
|
|
|
#define KINETIS_MCG (*(KINETIS_MCG_t *)0x40064000) |
|
|
|
#define MCG_C1 (KINETIS_MCG.C1) // 40064000 MCG Control 1 Register |
|
|
|
#define MCG_C1_IREFSTEN (uint8_t)0x01 // Internal Reference Stop Enable, Controls whether or not the internal reference clock remains enabled when the MCG enters Stop mode. |
|
|
|
#define MCG_C1_IRCLKEN (uint8_t)0x02 // Internal Reference Clock Enable, Enables the internal reference clock for use as MCGIRCLK. |
|
|
|
#define MCG_C1_IREFS (uint8_t)0x04 // Internal Reference Select, Selects the reference clock source for the FLL. |
|
|
|
#define MCG_C1_FRDIV(n) (uint8_t)(((n) & 0x07) << 3) // FLL External Reference Divider, Selects the amount to divide down the external reference clock for the FLL |
|
|
|
#define MCG_C1_CLKS(n) (uint8_t)(((n) & 0x03) << 6) // Clock Source Select, Selects the clock source for MCGOUTCLK |
|
|
|
#define MCG_C2 (KINETIS_MCG.C2) // 40064001 MCG Control 2 Register |
|
|
|
#define MCG_C2_IRCS (uint8_t)0x01 // Internal Reference Clock Select, Selects between the fast or slow internal reference clock source. |
|
|
|
#define MCG_C2_LP (uint8_t)0x02 // Low Power Select, Controls whether the FLL or PLL is disabled in BLPI and BLPE modes. |
|
|
|
#define MCG_C2_EREFS (uint8_t)0x04 // External Reference Select, Selects the source for the external reference clock. |
|
|
|
#define MCG_C2_HGO0 (uint8_t)0x08 // High Gain Oscillator Select, Controls the crystal oscillator mode of operation |
|
|
|
#define MCG_C2_RANGE0(n) (uint8_t)(((n) & 0x03) << 4) // Frequency Range Select, Selects the frequency range for the crystal oscillator |
|
|
|
#define MCG_C2_LOCRE0 (uint8_t)0x80 // Loss of Clock Reset Enable, Determines whether an interrupt or a reset request is made following a loss of OSC0 |
|
|
|
#define MCG_C3 (KINETIS_MCG.C3) // 40064002 MCG Control 3 Register |
|
|
|
#define MCG_C3_SCTRIM(n) (uint8_t)(n) // Slow Internal Reference Clock Trim Setting |
|
|
|
#define MCG_C4 (KINETIS_MCG.C4) // 40064003 MCG Control 4 Register |
|
|
|
#define MCG_C4_SCFTRIM (uint8_t)0x01 // Slow Internal Reference Clock Fine Trim |
|
|
|
#define MCG_C4_FCTRIM(n) (uint8_t)(((n) & 0x0F) << 1) // Fast Internal Reference Clock Trim Setting |
|
|
|
#define MCG_C4_DRST_DRS(n) (uint8_t)(((n) & 0x03) << 5) // DCO Range Select |
|
|
|
#define MCG_C4_DMX32 (uint8_t)0x80 // DCO Maximum Frequency with 32.768 kHz Reference, controls whether the DCO frequency range is narrowed |
|
|
|
#define MCG_C5 (KINETIS_MCG.C5) // 40064004 MCG Control 5 Register |
|
|
|
#define MCG_C5_PRDIV0(n) (uint8_t)((n) & 0x1F) // PLL External Reference Divider |
|
|
|
#define MCG_C5_PLLSTEN0 (uint8_t)0x20 // PLL Stop Enable |
|
|
|
#define MCG_C5_PLLCLKEN0 (uint8_t)0x40 // PLL Clock Enable |
|
|
|
#define MCG_C6 (KINETIS_MCG.C6) // 40064005 MCG Control 6 Register |
|
|
|
#define MCG_C6_VDIV0(n) (uint8_t)((n) & 0x1F) // VCO 0 Divider |
|
|
|
#define MCG_C6_CME0 (uint8_t)0x20 // Clock Monitor Enable |
|
|
|
#define MCG_C6_PLLS (uint8_t)0x40 // PLL Select, Controls whether the PLL or FLL output is selected as the MCG source when CLKS[1:0]=00. |
|
|
|
#define MCG_C6_LOLIE0 (uint8_t)0x80 // Loss of Lock Interrrupt Enable |
|
|
|
#define MCG_S (KINETIS_MCG.S) // 40064006 MCG Status Register |
|
|
|
#define MCG_S_IRCST (uint8_t)0x01 // Internal Reference Clock Status |
|
|
|
#define MCG_S_OSCINIT0 (uint8_t)0x02 // OSC Initialization, resets to 0, is set to 1 after the initialization cycles of the crystal oscillator |
|
|
|
#define MCG_S_CLKST(n) (uint8_t)(((n) & 0x03) << 2) // Clock Mode Status, 0=FLL is selected, 1= Internal ref, 2=External ref, 3=PLL |
|
|
|
#define MCG_S_CLKST_MASK (uint8_t)0x0C |
|
|
|
#define MCG_S_IREFST (uint8_t)0x10 // Internal Reference Status |
|
|
|
#define MCG_S_PLLST (uint8_t)0x20 // PLL Select Status |
|
|
|
#define MCG_S_LOCK0 (uint8_t)0x40 // Lock Status, 0=PLL Unlocked, 1=PLL Locked |
|
|
|
#define MCG_S_LOLS0 (uint8_t)0x80 // Loss of Lock Status |
|
|
|
#define MCG_SC (KINETIS_MCG.SC) // 40064008 MCG Status and Control Register |
|
|
|
#define MCG_SC_LOCS0 (uint8_t)0x01 // OSC0 Loss of Clock Status |
|
|
|
#define MCG_SC_FCRDIV(n) (uint8_t)(((n) & 0x07) << 1) // Fast Clock Internal Reference Divider |
|
|
|
#define MCG_SC_FLTPRSRV (uint8_t)0x10 // FLL Filter Preserve Enable |
|
|
|
#define MCG_SC_ATMF (uint8_t)0x20 // Automatic Trim Machine Fail Flag |
|
|
|
#define MCG_SC_ATMS (uint8_t)0x40 // Automatic Trim Machine Select |
|
|
|
#define MCG_SC_ATME (uint8_t)0x80 // Automatic Trim Machine Enable |
|
|
|
#define MCG_ATCVH (KINETIS_MCG.ATCVH) // 4006400A MCG Auto Trim Compare Value High Register |
|
|
|
#define MCG_ATCVL (KINETIS_MCG.ATCVL) // 4006400B MCG Auto Trim Compare Value Low Register |
|
|
|
#define MCG_C7 (KINETIS_MCG.C7) // 4006400C MCG Control 7 Register |
|
|
|
#define MCG_C8 (KINETIS_MCG.C8) // 4006400D MCG Control 8 Register |
|
|
|
#define MCG_C9 (KINETIS_MCG.C9) // 4006400E MCG Control 9 Register |
|
|
|
#define MCG_C11 (KINETIS_MCG.C11) // 40064010 MCG Control 11 Register |
|
|
|
#define MCG_C12 (KINETIS_MCG.C12) // 40064011 MCG Control 12 Register |
|
|
|
#define MCG_S2 (KINETIS_MCG.S2) // 40064012 MCG Status 2 Register |
|
|
|
#define MCG_T3 (KINETIS_MCG.T3) // 40064013 MCG Test 3 Register |
|
|
|
|
|
|
|
|
|
|
|
// Oscillator (OSC) |
|
|
|
#define OSC0_CR (*(volatile uint8_t *)0x40065000) // OSC Control Register |