Forum: Mikrocontroller und Digitale Elektronik AT32UC3C2512C Initialiserung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian S. (vivus)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir den Artikel 
https://www.mikrocontroller.net/articles/AT32UC3C_-_Einstieg_in_die_Programmierung 
angeguckt und wollte die Init mal compilieren und auf einen 
AT32UC3C2512C flashen. Leider erhalte ich Fehler:

Zeile 22:
Error  5  multiple definition of `CPU_set_clk'  C:\Users\.././cpu.c

Zeile 1:
Error  6  undefined reference to `barrier'  C:\Users ... 
AT32UC3C2_ErsteTest.c

Restlichen Meldungen sind nur Warnungen.

Mehrere Definitionen von der Funktion CPU_set_clk() sind auf jeden Fall 
nicht vorhanden.

Habe versucht die Fehler zu googlen,  leider ohne Erfolg.

Würde mich über einen Tipp freuen!

Gruß

von Christian S. (vivus)


Lesenswert?

Niemand eine Idee?

von Timmo H. (masterfx)


Lesenswert?

Christian S. schrieb:
> CPU_set_clk

Mal geguckt wo das sonst noch vorkommt?

von Christian S. (vivus)


Lesenswert?

ja sicher :) Oder ich übersehe es...

von Timmo H. (masterfx)


Lesenswert?

In cpu.c gibts gibts CPU_set_clk in der cpu.h ein CPU_set_clk2.
Du rufst in der AT32UC3C2_ErsteTest.c also etwas auf was in der cpu.h 
nicht deklariert wurde, jedoch in der cpu.c und damit zweimal.

: Bearbeitet durch User
von Christian S. (vivus)


Lesenswert?

Error  6  undefined reference to `barrier'  C:\Users ...
AT32UC3C2_ErsteTest.c

habe ich gefunden. Hier ist die Fkt. barrier nicht definiert. Denke es 
müsste die CPU_barrier() Fkt. sein.
1
#define CPU_barrier()      asm volatile("" ::: "memory")

von Christian S. (vivus)


Lesenswert?

Timmo H. schrieb:
> In cpu.c gibts gibts CPU_set_clk in der cpu.h ein CPU_set_clk2.
> Du rufst in der AT32UC3C2_ErsteTest.c also etwas auf was in der cpu.h
> nicht deklariert wurde, jedoch in der cpu.c und damit zweimal.

Habe ich nur zum Testen mal umbenannt. Habe ich dummer weise vergessen 
wieder Rückgängig zu machen...

Error  5  multiple definition of `CPU_set_clk' erhalte ich auch, wenn 
ich die Fkt. CPU_set_clk() in der main nicht aufrufe

: Bearbeitet durch User
von Christian S. (vivus)


Lesenswert?

Hat vielleicht jemand einen funktionierenden Code um den AT32UC3C2 mit 
einem 12MHz Quarz auf 66 MHz zu takten?

von Christian S. (vivus)


Lesenswert?

Habe das hier gefunden
1
void UsePLL(unsigned int clock)
2
{
3
  int clockh = (clock/6) - 1;
4
5
  AVR32_PM.oscctrl0 = (AVR32_PM.oscctrl0 | 0x00000407);        // Startup time  /  Oscillator Mode
6
7
  AVR32_PM.mcctrl =       AVR32_PM_OSC0EN_MASK;          // Enable Oscillator 0
8
9
  while((AVR32_PM.poscsr & AVR32_PM_POSCSR_OSC0RDY_MASK)== 0);  // Oscillator 0 is ready
10
11
12
  AVR32_PM.pll[0] =       0 << AVR32_PM_PLLOSC_OFFSET  |    // Oscillator 0 is the source for the PLL
13
                    1 << AVR32_PM_PLLDIV_OFFSET  |    // div = 1
14
                    clockh << AVR32_PM_PLLMUL_OFFSET |  // multi clock z.b. if clockh = 10 (10+1)*12=132/2Fvc = 66Mhz
15
                    5 << AVR32_PM_PLLOPT_OFFSET;      // 80MHz<fvco<180MHz / fPLL = fvco / Wide Bandwidth Mode disabled
16
17
  AVR32_PM.cksel =       0x80808080;
18
19
  AVR32_PM.pll[0] |=       AVR32_PM_PLLEN_MASK;            // PLL enable
20
21
  while(!(AVR32_PM.poscsr & AVR32_PM_POSCSR_LOCK0_MASK));      // PLL 0 is locked, and ready to be selected as clock source
22
23
24
  AVR32_FLASHC.fcr |=      0 << AVR32_FLASHC_FWS_OFFSET;      // The flash is read with 0 wait state. (write 1 otherwise)
25
26
  AVR32_PM.mcctrl |=       2 << AVR32_PM_MCSEL_OFFSET;        // PLL0 as main oscillator
27
28
}


AVR32_PM.oscctrl0 gibt es bei mir nicht laut AVR Studio. Das Register 
OSCCTRL ist bei mir unter System Control Interface also AVR_SCIF.oscctrl

AVR32_PM.mcctrl wiederum ist unter Power Manager...

Ist das bei den AVR32 unterschiedlich? Macht für mich nicht so richtig 
Sinn. Kann mir hier jemand was zu erklären?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.