Forum: Mikrocontroller und Digitale Elektronik Taktfrequenz im AVR Studio5 angeben


von Grübler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich arbeite mich gerade in das AVR-Studio 5 ein.

Ich habe dieses einfache Programm geschrieben:
1
#include <avr/io.h>
2
3
#define F_CPU 16000000UL 
4
#include <util/delay.h>
5
6
//Makros für die Bitverarbeitung
7
#define SETBIT(adr, bit) (adr |=  (1<<bit))
8
9
10
int main(void)
11
{
12
 SETBIT(DDRC, DDB6);    //Port Pin DC6 zum Ausgang machen
13
14
   int n =0;
15
16
    while(1)
17
    {
18
      SETBIT(PORTC, PORTC6); 
19
      for (n=0; n<10; n++) _delay_ms(100);
20
21
      CLEARBIT(PORTC, PORTC6); 
22
      for (n=0; n<10; n++) _delay_ms(100);
23
    
24
    }
25
 return(0);
26
}

Die LED am Ausgang sollte also 1 Sek. an und dann
1. Sek. aus sein.
Ist sie aber nicht. Sie Blinkt (gefühlt) fünf
mal so schnell.
Der Controller (ATMega32U4) arbeitet mit 16MHz.
Ich vermute, dass ich dem Compiler im Studio 5
das anzeigen müsste, damit das Makro in "_delay"
die richtigen Schleifenwerte berechnet.
Im Studio 4 geht es ja wie im Anhang dargestellt.

Kann mir einer einen Tipp geben, was bei mir
falsch läuft oder wo ich die Einstellung finden kann.

Vielen Dank schon mal im voraus.

von Ingo (Gast)


Lesenswert?

Project -> Properties -> Symbols und da ein neues Symbol F_CPU = xyz 
erstellen glaub ich.

von timo91 (Gast)


Lesenswert?

Vielleicht ist in deiner Makefile eine andere Frequenz unter F_CPU 
vordefiniert.

von Gerhard G. (xmega)


Angehängte Dateien:

Lesenswert?

Hallo,

siehe Anhang

Gruß xmwga

von Grübler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Ungo, Hallo Gerhard

Danke für den Tipp.

Es klappt aber noch nicht, den ich hab
noch ein zweites Problem.
Die CPU (ATMega32U4) hat ja eine
eingebaute USB-Schnittstelle. Auch
der dazu nötige Bootloader ist schon
auf dem Chip.

Ich übertrage nun mein Programm über das
Atmel-Programm Flip (siehe Bild) in den
Controller. Das ganze funktioniert ja auch
grundsätzlich aber er blinkt zu schnell :-((

Ich hab nun mein "Programm" unter dem mir gut
bekannten Studio 4 noch einmal compiliert
und das entsprechende HEX-File mit Flip
in den Controller übertragen. Und wieder
blinkt er zu schnell.

von Grübler (Gast)


Lesenswert?

Grübler schrieb:
> Hallo Ungo,

Pardon Ingo

von Grübler (Gast)


Lesenswert?

Letzte Meldung für Heute

Nach dem ich das USB-Kabel abgezogen
habe und die Spannung am Controller
Aus und wieder Eingeschaltet habe,
blinkte er wieder aber diesmal
viel zu langsam !!!
Um den Faktor 8 um genau zu sein.

Ich vermutete die gesetzte DIV8 Fuse und
hab mal mit dem AVRISP MKII nachgeschaut.
Es war so.

Zurücksetzten konnte ich sie aber nicht.
Das geht wohl nur, wenn man gleichzeitig
auf den Bootloader verzichtet.

Na, ja. Wieder etwas dazugelernt und einen
regnerischen Nachmittag erfolgreich
verbracht.

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.