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
Zeig her deinen Code. Mit welcher Frequenz soll der µC laufen und mit welcher läuft er?
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.
m.a.W.: Wie lange dauert der Puls im Simulator und bist du sicher, dass der Clockteiler aktiv ist (CKDIV8 Fuse)?
Update deine Toolchain. Es gibt eine fehlerhafte Version der delay.h, die genau diesen Faktor 4 zu schnell ist.
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

