Forum: Mikrocontroller und Digitale Elektronik AVR delay problem


von Nogge (Gast)



Lesenswert?

Hallo,
ich hatte neulich Porbleme bei der Initialisierung meines Displays und 
habe ziemlich schnell gemerkt dass irgendwas mit meinem delay nicht 
stimmt. Also habe ich mich gerade auf die suche gemacht um die Ursache 
zu finden. Ich habe leider noch keine Ahnung was ich falsch mache aber 
der delay ist wie im Foto vom Oszi zu sehen ist genau ein viertel. Nun 
die Frage an euch wo mache ich meinen Fehler?
Danke schon mal für eure Hilfe

von Michel (Gast)


Lesenswert?

Zeig her deinen Code.
Mit welcher Frequenz soll der µC laufen und mit welcher läuft er?

von Nogge (Gast)


Lesenswert?

Das ist jetzt nur das Programm in dem ich Versuch zu verstehn wo ich den 
Fehler mach. Der µC läuft wie im Screenshot auch zu sehen ist mit 1MHz.
1
#define F_CPU 1000000UL  // 1 MHz
2
#include <avr/io.h>
3
#include <util/delay.h>
4
5
6
int main()
7
{
8
9
  DDRD |= 1<<PD5;
10
11
  while(1)
12
  {
13
14
    PORTD ^= 1<<PD5;
15
    _delay_ms(1);
16
    
17
  }
18
19
  return 0;
20
}

Danke schon mal für deine Hilfe.

von Michel (Gast)


Lesenswert?

m.a.W.: Wie lange dauert der Puls im Simulator und bist du sicher, dass 
der Clockteiler aktiv ist (CKDIV8 Fuse)?

von Stefan E. (sternst)


Lesenswert?

Update deine Toolchain. Es gibt eine fehlerhafte Version der delay.h, 
die genau diesen Faktor 4 zu schnell ist.

von Nogge (Gast)


Lesenswert?

@Stefan
Sehr geil! Vielen Dank! War genau das Problem. Nur komisch dass ich über 
Google dazu nicht wirklich was gefunden habe. Zum Glück gibts hier immer 
Hilfe!
Herzlichsten Dank

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.