Taktfrequenz im AVR Studio5 angeben

Gast #2491818
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.
Angehängte Dateien:
Gast
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.
Angehängte Dateien:
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.