Forum: Mikrocontroller und Digitale Elektronik Zeiten bei ATMEGA32 falsch


von Kevin K. (kebin)


Lesenswert?

Hallo,

ich benutzt den Atmega32 und den Adaptar AVRISP mkII und bei mir ist der 
_delay_ms(250); gleich 1s
Und habe auf dem Atmega32 ein Quarz von 4 MHz mit 2x 22pF auf 0V 
geschaltet.

1
#define F_CPU 4000000UL  
2
#include <util/delay.h>  
3
#include <avr/interrupt.h>
4
#include <avr/io.h>
5
6
7
8
int main()
9
{
10
  
11
  
12
  
13
  DDRA = 0xFF;
14
  
15
    
16
    
17
    
18
    while(1)
19
    {
20
        
21
    
22
  PORTA = 0b00000001;
23
    
24
  _delay_ms(1000);
25
    
26
  PORTA = 0b00000000;
27
    
28
  _delay_ms(1000);    
29
  
30
    
31
    }
32
}


Warum bekomme ich keine genaue Sekunde?


Danke im Voraus!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Kebin Kebin schrieb:
> Warum bekomme ich keine genaue Sekunde?

 Weil deine MEGA mit internem Clock von 1MHz läuft.

von Michael (Gast)


Lesenswert?

Weil der µC wohl noch mit dem internen 1MHz Oszillator läuft. Das musst 
du über die Fuses ändern.

Grüße Michael

von Kevin K. (kebin)


Lesenswert?

Danke für die Antwort :)

Und wie geht das mit den Fuses ändern?
Ich bin noch Anfänger.



Danke im Voraus!

von g457 (Gast)


Lesenswert?

> Und wie geht das mit den Fuses ändern?

Datenplatt lesen über die Fuses (kein Scherz!), grob Abschnitt "Fuse 
Bits" im Kapitel "Memory Programming" sowie die darin referenzierten 
anderen Abschnitte, sodann in der von dir geheim gehaltenen IDE, 
alternativ direkt auf der Kommandozeile, die Fuses gemäß Datenplatt 
setzten. Beim avrdude heissen die Speichertypen für die Fuses hier hfuse 
und lfuse.

> Ich bin noch Anfänger.

Das waren wir alle mal :-)

von Falk B. (falk)


Lesenswert?

@ Kebin Kebin (kebin)

>Und wie geht das mit den Fuses ändern?
>Ich bin noch Anfänger.

In passenden Programmierfenster im AVR-Studio- Siehe auch

AVR Fuses.

: Bearbeitet durch User
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.