ATmega32U2 läuft in Zeitlupe

Gast #2881217
Lesenswert?
• ▲
▼
Hi zusammen,

ich habe gerade meinen Atmega32U2 zum laufen gebracht, allerdings 
scheint die Taktrate bei etwa 1s zu liegen. Habe Grundbeschaltung mit 
16MHz Kristall, prgrammierung über AVR Studio 6 und FLIP. Wenn ich das 
Programm
1
#include <avr/io.h>
2
#define F_CPU 16000000UL
3
int main(void)
4
{
5
  DDRC = 0xFF;
6
  PORTC |= (1 << 4);
7
    while(1)
8
    {  
9
    PORTC ^= (1 << 4);
10
    }
11
}

laufen lasse, blinkt die LED an PC4 ungefähr im 5Hz Takt.
Jemand eine Idee, was da schief läuft?

Grüße, Max
Gast #2881327
Lesenswert?
• ▲
▼
Die 1s sollten nur die größenordnung verdeutlichen. -.-

Die fuse bits kann ich leider mit flip nicht lesen. Ich würde aber 
erwarten, dass sie von werk aus so sein sollten, dass man den uC alleine 
durch programmierung über den bootloader normal verwenden kann.
Gast #2881336
Lesenswert?
• ▲
▼
Das ausschalten des Watchdogs führt zum selben Ergebnis. Wenn ich die 
LED nur bei jedem beispielsweise 10ten mal toggle, toggelt sie 
tatsächlich dementsprechend langsamer. Ich denke also nicht, dass das 
Programm abstürzt oder der uC resettet.
#2881348
Lesenswert?
• ▲
▼
So steht es im Datenblatt:
The device is shipped with internal RC oscillator at 8.0 MHz and with 
the fuse CKDIV8 programmed,
resulting in 1.0 MHz system clock. The startup time is set to maximum 
and time-out
period enabled. (CKSEL = "0010", SUT = "10", CKDIV8 = "0"). The default 
setting ensures that
all users can make their desired clock source setting using any 
available programming interface.
#2881449
Lesenswert?
• ▲
▼
Lothar Miller schrieb:
> Ich finde, der Watchdog ist eine heiße Spur. Dann blinkt die LED für
> 150ms mit etwa 1 MHz und dann startet der uC mit passender
> Reset-Verzögerung neu.

Wie schon gesagt, wenn ich die LED bei jedem n-ten Schleifendurchlauf 
toggle, toggelt sie tatsächlich n mal so langsam. Und das würde den 
Watchdog ja ausschließen. Ausserdem habe ich inzwischen als allererstes 
im Program den Watchdog ausgeschaltet, ohne änderung.

Michael schrieb:
> Dann schick doch mal ein Zeichen über den USART raus und guck dir die
> Bitdauer an. Damit sollte die reale Taktfrequenz doch auch einfach zu
> sehen sein.

Ich habe leider nichts hier um das auslesen zu können... :-(

Grüße,
Max
#2881939
Lesenswert?
• ▲
▼
Komisch ist, dass wenn ich eine LUFA Demo (VirtualSerial) auf den uC 
spiele, enumeriert er immerhin und wird in Windows richtig erkannt. Und 
alleine, dass das Betriebssystem läuft und er programmierbar ist, 
bedeutet doch, dass der eigentliche Takt richtig, bzw. 1, 8, 16 oder was 
auch immer MHz ist, oder?

Antwort schreiben

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.

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.