]> begriffs open source - cmsis-freertos/blob - Demo/AVR_Dx_IAR/clk_config.h
Update README.md - branch main is now the base branch
[cmsis-freertos] / Demo / AVR_Dx_IAR / clk_config.h
1 #ifndef CLK_CONFIG_H_
2 #define CLK_CONFIG_H_
3
4 #include "FreeRTOSConfig.h"
5 #include "protected_io/ccp.h"
6
7 #if ( configCPU_CLOCK_HZ == 24000000 )
8
9     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_24M_gc);
10
11 #elif ( configCPU_CLOCK_HZ == 20000000 )
12
13     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_20M_gc);
14
15 #elif ( configCPU_CLOCK_HZ == 16000000 )
16
17     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_16M_gc);
18
19 #elif ( configCPU_CLOCK_HZ == 12000000 )
20
21     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_12M_gc);
22
23 #elif ( configCPU_CLOCK_HZ == 10000000 )
24
25     #define CLK_init()  { \
26                         ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_20M_gc); \
27                         ccp_write_io((void *)&(CLKCTRL.MCLKCTRLB), CLKCTRL_PDIV_2X_gc | CLKCTRL_PEN_bm); \
28                         }
29
30 #elif ( configCPU_CLOCK_HZ == 8000000 )
31
32     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_8M_gc);
33
34 #elif ( configCPU_CLOCK_HZ == 6000000 )
35
36     #define CLK_init()  { \
37                         ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_12M_gc); \
38                         ccp_write_io((void *)&(CLKCTRL.MCLKCTRLB), CLKCTRL_PDIV_2X_gc | CLKCTRL_PEN_bm); \
39                         }
40
41 #elif ( configCPU_CLOCK_HZ == 5000000 )
42
43     #define CLK_init()  { \
44                         ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_20M_gc); \
45                         ccp_write_io((void *)&(CLKCTRL.MCLKCTRLB), CLKCTRL_PDIV_4X_gc | CLKCTRL_PEN_bm); \
46                         }
47
48 #elif ( configCPU_CLOCK_HZ == 4000000 )
49
50     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_4M_gc);
51
52 #elif ( configCPU_CLOCK_HZ == 3000000 )
53
54     #define CLK_init()  { \
55                         ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_12M_gc); \
56                         ccp_write_io((void *)&(CLKCTRL.MCLKCTRLB), CLKCTRL_PDIV_4X_gc | CLKCTRL_PEN_bm); \
57                         }
58
59 #elif ( configCPU_CLOCK_HZ == 2000000 )
60
61     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_2M_gc);
62
63 #elif ( configCPU_CLOCK_HZ == 1000000 )
64
65     #define CLK_init()  ccp_write_io((void *)&(CLKCTRL.OSCHFCTRLA), CLKCTRL_FREQSEL_1M_gc);
66
67 #else
68
69     #error The selected clock frequency is not supported. Choose a value from the NOTE in FreeRTOSConfig.h.
70
71 #endif
72
73 #endif /* CLK_CONFIG_H_ */