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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren