45#define __SYSCLOCK (__CONF_FOSC / ((__CONF_CLKDIV == 0) ? 1 : __CONF_CLKDIV))
47#define SYS_SetFOSC(__IRCBAND__, __VRTRIM__, __IRTRIM__, __LIRTRIM__) do { \
48 IRCBAND = ((__IRCBAND__) & 0x03); \
49 VRTRIM = (__VRTRIM__); \
50 IRTRIM = (__IRTRIM__); \
51 LIRTRIM = ((__LIRTRIM__) & 0x03); \
57#define SYS_EnableOscillatorHSI() do { \
59 (HIRCCR) = (HIRCCR) | (0x01 << 7); \
60 while (!(HIRCCR & 0x01)); \
66#define SYS_DisableOscillatorHSI() do { \
68 (HIRCCR) = (HIRCCR) & ~(0x01 << 7); \
75#define SYS_EnableOscillatorLSI() do { \
77 (IRC32KCR) = (IRC32KCR) | (0x01 << 7); \
78 while (!(IRC32KCR & 0x01)); \
84#define SYS_DisableOscillatorLSI() do { \
86 (IRC32KCR) = (IRC32KCR) & ~(0x01 << 7); \
93#define SYS_EnableOscillatorHSE() do { \
95 (XOSCCR) = (XOSCCR) | (0x01 << 7); \
96 while (!(HIRCCR & 0x01)); \
102#define SYS_DisableOscillatorHSE() do { \
104 (XOSCCR) = (XOSCCR) & ~(0x01 << 7); \
110#define SYS_SetExternalOscType(__TYPE__) SFRX_ASSIGN(XOSCCR, 6, (__TYPE__))
115#define SYS_EnableOscillatorLSE() do { \
117 (X32KCR) = (X32KCR) | (0x01 << 7); \
118 while (!(X32KCR & 0x01)); \
124#define SYS_DisableOscillatorLSE() do { \
126 (X32KCR) = (X32KCR) & ~(0x01 << 7); \
132#define SYS_SetExternal32kHighGain(__STATE__) SFRX_ASSIGN(X32KCR, 6, (__STATE__))
138#define SYS_SetSysClockOutputDivider(__DIV__) do { \
140 (MCLKOCR) = (MCLKOCR) & ~(0x7F) | (__DIV__); \
148#define SYS_SetClockOutputPin(__PORT__) SFRX_ASSIGN(MCLKOCR, 7, (__STATE__))
153#define SYS_EnableOscillator48M() do { \
156 (IRC48MCR) = (IRC48MCR) | (0x01 << 7); \
157 while (!(IRC48MCR & 0x01)); \
163#define SYS_DisableOscillator48M() do { \
165 (IRC48MCR) = (IRC48MCR) & ~(0x01 << 7); \
void SYS_TrimClock(uint8_t vrtrim, uint8_t irtrim)
void SYS_Delay(uint16_t t)
void SYS_DelayUs(uint16_t t)
@ SYS_SysClkOutputPort_P16
@ SYS_SysClkOutputPort_P54
@ SYS_ExternalOSC_Crystal