Atmel SAML22 Generic Clock auf I/O Pin

OP #4632001
Lesenswert?
• ▲
▼
Hallo,

Ich versuche mich derzeit an ARM Controller und habe mir das Atmel 
SAML22 Xplained Board angeschafft.
Von Atmels ASF bin ich nicht überzeugt und programmiere deshalb ohne 
ASF.

Jedoch bin ich nach intensivem Studium des Datenblattes und des Xplained 
User Guides an meine Grenzen gestoßen.

Ich versuche gerade den Generic Clock Controller zum laufen zu bringen. 
Habe als Clock Source den internen 16MH Oszillator ausgewählt (läuft im 
4MHz Modus) und im Generic Clock Controller auf ca 1Hz heruntergeteilt.

Wollte diesen Clock nun auf dem GCLK[0] I/O Pin ausgeben... Aber nichts 
kommt daher..
1
#include "sam.h"
2

3
int main(void)
4
{
5
    /* Initialize the SAM system */
6
    SystemInit();
7
  
8
    PORT->Group[1].DIRSET.reg =  PORT_PB14;
9
    PORT->Group[1].PINCFG[14].bit.PMUXEN = 1;
10
    PORT->Group[1].PMUX[6].reg = PORT_PMUX_PMUXE(7);
11
  
12
  
13
  OSCCTRL->OSC16MCTRL.reg = OSCCTRL_OSC16MCTRL_FSEL_4 |
14
          OSCCTRL_OSC16MCTRL_ENABLE;
15
                
16
  GCLK->GENCTRL[0].reg =  GCLK_GENCTRL_GENEN      | 
17
        GCLK_GENCTRL_DIVSEL     | 
18
        GCLK_GENCTRL_DIV(20)  |
19
        GCLK_GENCTRL_SRC_OSC16M | 
20
        GCLK_GENCTRL_OE;
21
  
22
  GCLK->PCHCTRL[0].reg =  GCLK_PCHCTRL_CHEN |
23
        GCLK_PCHCTRL_GEN_GCLK0;
24
  
25
   
26
  
27
    /* Replace with your application code */
28
    while (1) 
29
    {
30
    }
31
}

Danke und lg dominik
OP #4859528
Lesenswert?
• ▲
▼
Habe mittlerweile das Problem gelöst und stelle es allen interessierten 
zur Verfügung:
1
#include "sam.h"
2

3

4
int main(void)
5
{
6
  /* Initialize the SAM system */
7
  SystemInit();
8
  
9
  PORT->Group[0].DIRSET.reg = PORT_PA27;
10
  PORT->Group[0].PINCFG[27].bit.PMUXEN = 1;
11
  PORT->Group[0].PMUX[13].reg = PORT_PMUX_PMUXO(0x7);
12
    
13
  OSC32KCTRL->XOSC32K.reg = OSC32KCTRL_XOSC32K_EN32K | OSC32KCTRL_XOSC32K_ENABLE | OSC32KCTRL_XOSC32K_XTALEN;
14
  
15
  
16
  GCLK->GENCTRL[0].reg =  GCLK_GENCTRL_GENEN    |
17
              GCLK_GENCTRL_DIV(32)  | //1kHz Clock
18
              GCLK_GENCTRL_SRC_XOSC32K|
19
              GCLK_GENCTRL_OE;
20

21
  GCLK->PCHCTRL[23].reg =  GCLK_PCHCTRL_CHEN |
22
              GCLK_PCHCTRL_GEN_GCLK0;            
23
  
24

25
  /* Replace with your application code */
26
  while (1)
27
  {
28
  }
29
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren