@@ -5,7 +5,7 @@ void clockout(uint32_t gclk, int32_t divisor)
5
5
GCLK_GENDIV_Type gendiv =
6
6
{
7
7
.bit .DIV = divisor , // divider, linear or 2^(.DIV+1)
8
- .bit .ID = gclk , // GCLK_GENERATOR_X
8
+ .bit .ID = gclk , // GCLK_GENERATOR_"gclk"
9
9
};
10
10
GCLK -> GENDIV .reg = gendiv .reg ;
11
11
@@ -14,15 +14,17 @@ void clockout(uint32_t gclk, int32_t divisor)
14
14
{
15
15
.bit .RUNSTDBY = 0 , // Run in Standby
16
16
.bit .DIVSEL = 0 , // .DIV (above) Selection: 0=linear 1=powers of 2
17
- .bit .OE = 1 , // Output Enable to observe on a port pin
17
+ .bit .OE = 1 , // Output Enable to observe on any port pin capable of outputting GCLK_IO["gclk"]
18
18
.bit .OOV = 0 , // Output Off Value
19
19
.bit .IDC = 1 , // Improve Duty Cycle
20
20
.bit .GENEN = 1 , // enable this GCLK
21
- // select GCLK source
22
21
//.bit.SRC = GCLK_SOURCE_OSC8M,
23
- .bit .SRC = GCLK_SOURCE_DFLL48M ,
24
- // select GCLK2 to output on
25
- .bit .ID = gclk , // GCLK_GENERATOR_X
22
+ .bit .SRC = GCLK_SOURCE_DFLL48M , // select GCLK source
23
+ .bit .ID = gclk , // output GCLK_GENERATOR_"gclk" on GCLK_IO["gclk"]
26
24
};
27
25
GCLK -> GENCTRL .reg = genctrl .reg ;
28
- }
26
+ while ( GCLK -> STATUS .reg & GCLK_STATUS_SYNCBUSY )
27
+ {
28
+ /* Wait for synchronization */
29
+ }
30
+ }
0 commit comments