Forum: Mikrocontroller und Digitale Elektronik Atmel SAML22 Generic Clock auf I/O Pin


von Dominik T. (dominik_t357)


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

von Dominik T. (dominik_t357)


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
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.