summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/AVR_ATMega4809_MPLAB.X/clk_config.h
blob: c2e63516b98dbf38d474adb2f39cd59096e13926 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef CLK_CONFIG_H_
#define CLK_CONFIG_H_

#include <avr/io.h>
#include "FreeRTOSConfig.h"

#if ( configCPU_CLOCK_HZ == 20000000 )

    #define CLK_init()  _PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc);

#elif ( configCPU_CLOCK_HZ == 10000000 )

    #define CLK_init()  { \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc); \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, CLKCTRL_PDIV_2X_gc | CLKCTRL_PEN_bm); \
                        }

#elif ( configCPU_CLOCK_HZ == 5000000 )

    #define CLK_init()  { \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc); \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, CLKCTRL_PDIV_4X_gc | CLKCTRL_PEN_bm); \
                        }

#elif ( configCPU_CLOCK_HZ == 2000000 )

    #define CLK_init()  { \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc); \
                        _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, CLKCTRL_PDIV_10X_gc | CLKCTRL_PEN_bm); \
                        }

#else

    #error The selected clock frequency is not supported. Choose a value from the NOTE in FreeRTOSConfig.h.

#endif

#endif /* CLK_CONFIG_H_ */